Pendahuluan
API yang dijelaskan dalam dokumen ini digunakan untuk fungsi resolusi kustom. Gunakan API ini jika skenario resolusi dasar tidak memenuhi kebutuhan Anda.
Anda harus mengonfigurasi parameter global yang diperlukan untuk setiap permintaan resolusi nama domain kustom. Untuk informasi lebih lanjut, lihat Atur Parameter Global untuk Resolusi Kustom.
API resolusi sinkron kustom
Saat menggunakan API resolusi sinkron kustom untuk menyelesaikan nama domain, thread saat ini akan diblokir hingga hasil resolusi yang valid dikembalikan.
API ini pertama-tama memeriksa cache menggunakan `cacheKey`. Jika hasil resolusi aktif tersedia di cache, API segera mengembalikan hasil yang tersimpan di cache. Jika tidak ada hasil aktif yang ditemukan, API memblokir thread pemanggil dan menjalankan resolusi nama domain di thread pekerja. Setelah resolusi selesai, hasilnya dikembalikan. Jika permintaan habis waktu, nilai null dikembalikan.
Durasi keseluruhan operasi resolusi sinkron dikontrol oleh konfigurasi timeout. Jika resolusi gagal dalam periode timeout, hasil resolusi kosong segera dikembalikan.
getHttpDnsResultForHostSync
Definisi API
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType requestIpType, Map<String, String> params, String cacheKey)
Versi Diperkenalkan
2.4.0
Kelas
HttpDnsService
Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
host | String | Ya | Nama domain yang akan diselesaikan. |
requestIpType | RequestIpType | Ya | Jenis alamat IP yang akan diselesaikan. Kami sarankan Anda mengatur ini ke RequestIpType.both. Ini adalah Enumerasi. Menentukan jenis alamat IP yang akan diselesaikan.
|
params | Map<String, String> | Ya | Parameter tambahan untuk resolusi nama domain. Ini sesuai dengan parameter event.parameters dalam fungsi resolusi kustom di server. |
cacheKey | String | Ya | Kunci cache lokal untuk nama domain. Jika parameter tambahan berubah dan server harus menyelesaikan nama domain lagi, Anda juga harus mengubah cacheKey. |
Nilai Pengembalian
Tipe | Deskripsi |
Hasil resolusi. |
Kode Contoh
val httpdns = HttpDns.getService(accountID)
val httpDnsResult = dnsService?.getHttpDnsResultForHostSync(host, RequestIpType.auto, params, cacheKey)HttpDnsService httpdns = HttpDns.getService(accountID);
HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSync(host, RequestIpType.auto, params, cacheKey);API resolusi asinkron kustom
Saat menggunakan API resolusi asinkron kustom untuk menyelesaikan nama domain, thread saat ini tidak diblokir. Hasil resolusi dikembalikan melalui callback.
API ini pertama-tama memeriksa cache. Jika hasil resolusi aktif tersedia di cache, API segera mengembalikan hasil yang tersimpan di cache melalui callback. Jika tidak ada hasil aktif yang ditemukan, API menjalankan resolusi nama domain di thread pekerja. Setelah resolusi selesai atau permintaan habis waktu, hasilnya dikembalikan melalui callback.
Untuk antarmuka parsing sinkron, total waktu parsing dikontrol oleh konfigurasi timeout. Jika parsing tidak selesai dalam periode timeout yang dikonfigurasi, antarmuka segera mengembalikan hasil kosong.
getHttpDnsResultForHostAsync
Definisi API
void getHttpDnsResultForHostAsync(String host, RequestIpType requestIpType, Map<String, String> params, String cacheKey, HttpDnsCallback callback)
Versi Diperkenalkan
2.4.0
Kelas
HttpDnsService
Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
host | String | Ya | Nama domain yang akan diselesaikan. |
requestIpType | RequestIpType | Ya | Jenis alamat IP yang akan diselesaikan. Kami sarankan Anda mengatur ini ke RequestIpType.both. Ini adalah Enumerasi. Menentukan jenis alamat IP yang akan diselesaikan.
|
params | Map<String, String> | Ya | Parameter tambahan untuk resolusi nama domain. Ini sesuai dengan parameter event.parameters dalam fungsi resolusi kustom di server. |
cacheKey | String | Ya | Kunci cache lokal untuk nama domain. Jika parameter tambahan berubah dan server harus menyelesaikan nama domain lagi, Anda juga harus mengubah cacheKey. |
callback | Ya | Kelas callback untuk hasil resolusi. |
Kode Contoh
val httpdns = HttpDns.getService(accountID)
dnsService?.getHttpDnsResultForHostAsync(host, RequestIpType.auto, params, cacheKey, HttpDnsCallback {
httpDnsResult = it
})HttpDnsService httpdns = HttpDns.getService(accountID);
httpdns.getHttpDnsResultForHostAsync(host, RequestIpType.auto, params, cacheKey, new HttpDnsCallback() {
void onHttpDnsCompleted(HTTPDNSResult result) {
}
});API resolusi sinkron non-blokir kustom
Saat menggunakan API resolusi sinkron non-blokir kustom untuk menyelesaikan nama domain, thread saat ini tidak diblokir, tetapi hasil kosong mungkin dikembalikan.
API ini hanya memeriksa cache dan mengembalikan hasil resolusi dari cache. Jika tidak ada hasil resolusi di cache atau hasil yang tersimpan di cache telah kedaluwarsa, resolusi nama domain dilakukan di thread pekerja. Setelah resolusi berhasil, cache diperbarui untuk panggilan berikutnya.
getHttpDnsResultForHostSyncNonBlocking
Definisi API
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType requestIpType, Map<String, String> params, String cacheKey)
Versi Diperkenalkan
2.4.0
Kelas
HttpDnsService
Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
host | String | Ya | Nama domain yang akan diselesaikan. |
requestIpType | RequestIpType | Ya | Jenis alamat IP yang akan diselesaikan. Kami sarankan Anda mengatur ini ke RequestIpType.both. Ini adalah Enumerasi. Menentukan jenis alamat IP yang akan diselesaikan.
|
params | Map<String, String> | Ya | Parameter tambahan untuk resolusi nama domain. Ini sesuai dengan parameter event.parameters dalam fungsi resolusi kustom di server. |
cacheKey | String | Ya | Kunci cache lokal untuk nama domain. Jika parameter tambahan berubah dan server harus menyelesaikan nama domain lagi, Anda juga harus mengubah cacheKey. |
Nilai Pengembalian
Tipe | Deskripsi |
Hasil resolusi. |
Kode Contoh
val httpdns = HttpDns.getService(accountID)
val httpDnsResult = dnsService?.getHttpDnsResultForHostSyncNonBlocking(host, RequestIpType.auto, params, cacheKey)HttpDnsService httpdns = HttpDns.getService(accountID);
HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSyncNonBlocking(host, RequestIpType.auto, params, cacheKey);