All Products
Search
Document Center

HTTPDNS:API resolusi kustom

Last Updated:Oct 10, 2025

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.

Penting

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.

  • v4: Selesaikan ke Alamat IPv4.

  • v6: Selesaikan ke Alamat IPv6.

  • both: Selesaikan ke Alamat IPv4 dan IPv6.

  • auto: Kit pengembangan perangkat lunak (SDK) menentukan tipe alamat berdasarkan stack jaringan perangkat saat ini. Secara default, nama domain diselesaikan ke Alamat IPv4. Jika stack jaringan saat ini mendukung IPv6, SDK juga mencoba menyelesaikan nama domain ke Alamat IPv6.

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

HTTPDNSResult

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.

Penting

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.

  • v4: Selesaikan ke Alamat IPv4.

  • v6: Selesaikan ke Alamat IPv6.

  • both: Selesaikan ke Alamat IPv4 dan IPv6.

  • auto: SDK menentukan tipe alamat berdasarkan stack jaringan perangkat saat ini. Secara default, nama domain diselesaikan ke Alamat IPv4. Jika stack jaringan saat ini mendukung IPv6, SDK juga mencoba menyelesaikan nama domain ke Alamat IPv6.

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

HttpDnsCallback

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.

  • v4: Selesaikan ke Alamat IPv4.

  • v6: Selesaikan ke Alamat IPv6.

  • both: Selesaikan ke Alamat IPv4 dan IPv6.

  • auto: SDK menentukan tipe alamat berdasarkan stack jaringan perangkat saat ini. Secara default, nama domain diselesaikan ke Alamat IPv4. Jika stack jaringan saat ini mendukung IPv6, SDK juga mencoba menyelesaikan nama domain ke Alamat IPv6.

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

HTTPDNSResult

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);