All Products
Search
Document Center

HTTPDNS:API Resolusi Nama Domain

Last Updated:Oct 10, 2025

Pengenalan

Kit pengembangan perangkat lunak (SDK) HTTPDNS menyediakan berbagai API untuk resolusi nama domain dan fitur terkait, termasuk:

Setel nama domain untuk praresolusi

Setelah aplikasi Anda dimulai dan SDK diinisialisasi, segera panggil API ini untuk menetapkan nama domain hotspot yang mungkin akan digunakan nanti. Ini memungkinkan SDK untuk menyelesaikan nama domain tersebut terlebih dahulu dan mengurangi latensi permintaan resolusi berikutnya.

Jika Anda memanggil API ini selama waktu proses, SDK segera menyelesaikan nama domain dalam daftar yang ditentukan. Ini menyegarkan hasil resolusi untuk nama domain tersebut dan mencatatnya dalam cache. Tindakan ini setara dengan memaksa pembaruan, biasanya digunakan setelah tindakan bisnis tertentu untuk menyegarkan resolusi nama domain saat ini dan memaksa keputusan penjadwalan baru.

Penting

Untuk menyeimbangkan efisiensi resolusi dan kecepatan tanggapan, SDK membatasi setiap tugas resolusi batch yang dikirimkan ke server hingga lima nama domain. Jika daftar praresolusi berisi lebih dari lima nama domain, SDK secara otomatis mengirimkan tugas resolusi dalam batch.

<u>setPreResolveHosts</u>

Definisi API

void setPreResolveHosts(ArrayList<String> hostList)

void setPreResolveHosts(ArrayList<String> hostList, RequestIpType requestIpType)

Diperkenalkan dalam versi

2.4.0

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Wajib

Deskripsi

hostList

ArrayList<String>

Ya

Daftar nama domain untuk praresolusi. Jika parameter requestIpType tidak ditentukan, nilai default adalah RequestIpType.v4.

Penting
  • Nama domain yang akan diselesaikan harus berupa string nama domain murni. Tidak boleh mengandung header protokol (seperti http://), jalur, atau port. Jika tidak, resolusi mungkin gagal.

  • Nama domain wildcard tidak didukung.

  • Contoh benar:

     ArrayList<String>  hostList = new ArrayList<>();
     hostList.add("www.aliyun.com");
     hostList.add("www.taobao.com");          
  • Contoh salah:

     ArrayList<String>  hostList = new ArrayList<>();
     hostList.add("https://www.aliyun.com");
     hostList.add("http://www.taobao.com/help"); 

requestIpType

RequestIpType

Tidak

Tipe alamat IP untuk praresolusi. Kami merekomendasikan menggunakan RequestIpType.both.

Enumerasi tipe alamat IP untuk diselesaikan. Nilai valid:

  • v4: Diselesaikan ke Alamat IPv4.

  • v6: Diselesaikan ke Alamat IPv6.

  • both: Diselesaikan ke Alamat IPv4 dan IPv6.

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

Resolusi nama domain sinkron

  • API resolusi sinkron memblokir thread saat ini sampai hasil resolusi yang valid diperoleh dan dikembalikan.

  • API ini pertama kali memeriksa cache. Jika hasil resolusi yang valid ada di cache, hasil cache langsung dikembalikan. Jika tidak ada hasil yang valid ditemukan di cache, API memblokir thread pemanggil dan melakukan resolusi nama domain dalam thread pekerja. Ketika resolusi selesai, hasilnya dikembalikan. Jika periode timeout tercapai, ia mengembalikan nilai null.

  • Untuk mencegah API ini disalahgunakan di thread utama, yang dapat menyebabkan aplikasi tersendat, API mendeteksi thread pemanggil. Jika itu adalah thread utama, API secara otomatis menurunkan spesifikasi ke logika API getHttpDnsResultForHostSyncNonBlocking.

Penting

Total waktu yang dibutuhkan oleh API resolusi sinkron dikontrol oleh konfigurasi timeout. Jika resolusi tidak berhasil dalam periode timeout, hasil resolusi kosong segera dikembalikan.

getHttpDnsResultForHostSync

Definisi API

HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType requestIpType)

Diperkenalkan dalam versi

2.3.2

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Wajib

Deskripsi

host

String

Ya

Nama domain untuk diselesaikan.

requestIpType

RequestIpType

Ya

Tipe alamat IP untuk diselesaikan. Kami merekomendasikan menggunakan RequestIpType.both.

Enumerasi tipe alamat IP untuk diselesaikan. Nilai valid:

  • v4: Diselesaikan ke Alamat IPv4.

  • v6: Diselesaikan ke Alamat IPv6.

  • both: Diselesaikan ke Alamat IPv4 dan IPv6.

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

Nilai Pengembalian

Tipe

Deskripsi

HTTPDNSResult

Hasil parsing.

Kode contoh

val httpdns = HttpDns.getService(accountID)
val httpDnsResult = dnsService?.getHttpDnsResultForHostSync("www.aliyun.com", RequestIpType.auto)
HttpDnsService httpdns = HttpDns.getService(accountID);
HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSync("www.aliyun.com", RequestIpType.auto);

Resolusi nama domain asinkron

  • API resolusi asinkron tidak memblokir thread saat ini. Hasil resolusi dikembalikan melalui callback.

  • API ini pertama kali memeriksa cache. Jika hasil resolusi yang valid ada di cache, hasil cache langsung dikembalikan melalui callback. Jika tidak ada hasil yang valid ditemukan di cache, API melakukan resolusi nama domain dalam thread pekerja. Setelah resolusi selesai atau periode timeout tercapai, hasilnya dikembalikan melalui callback.

Penting

Total waktu yang dibutuhkan oleh API resolusi asinkron dikontrol oleh konfigurasi timeout. Jika resolusi tidak berhasil dalam periode timeout, hasil resolusi kosong segera dikembalikan melalui callback.

getHttpDnsResultForHostAsync

Definisi API

void getHttpDnsResultForHostAsync(String host, RequestIpType type, HttpDnsCallback callback)

Diperkenalkan dalam versi

2.4.0

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Wajib

Deskripsi

host

String

Ya

Nama domain untuk diselesaikan.

requestIpType

RequestIpType

Ya

Tipe alamat IP untuk diselesaikan. Kami merekomendasikan menggunakan RequestIpType.both.

Enumerasi tipe alamat IP untuk diselesaikan. Nilai valid:

  • v4: Diselesaikan ke Alamat IPv4.

  • v6: Diselesaikan ke Alamat IPv6.

  • both: Diselesaikan ke Alamat IPv4 dan IPv6.

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

callback

HttpDnsCallback

Ya

API callback untuk hasil resolusi nama domain.

Kode contoh

val httpdns = HttpDns.getService(accountID)
val httpDnsResult = dnsService?.getHttpDnsResultForHostAsync("www.aliyun.com", RequestIpType.auto, HttpDnsCallback {
                        httpDnsResult = it
                    })
HttpDnsService httpdns = HttpDns.getService(accountID);
HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com", RequestIpType.auto, new HttpDnsCallback() {
                                void onHttpDnsCompleted(HTTPDNSResult result) {
                                }      
                              });

Resolusi nama domain sinkron tanpa blokir

  • API resolusi sinkron tanpa blokir tidak memblokir thread saat ini, tetapi mungkin mengembalikan hasil kosong.

  • API ini hanya memeriksa cache dan mengembalikan hasil resolusi dari cache. Jika tidak ada hasil resolusi di cache, atau jika hasil cache telah kedaluwarsa, resolusi nama domain dilakukan dalam thread pekerja. Setelah resolusi berhasil, cache diperbarui untuk pemanggilan resolusi berikutnya.

getHttpDnsResultForHostSyncNonBlocking

Definisi API

HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type)

Diperkenalkan dalam versi

2.4.0

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Wajib

Deskripsi

host

String

Ya

Nama domain untuk diselesaikan.

requestIpType

RequestIpType

Ya

Tipe alamat IP untuk diselesaikan. Kami merekomendasikan menggunakan RequestIpType.both.

Enumerasi tipe alamat IP untuk diselesaikan. Nilai valid:

  • v4: Diselesaikan ke Alamat IPv4.

  • v6: Diselesaikan ke Alamat IPv6.

  • both: Diselesaikan ke Alamat IPv4 dan IPv6.

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

Nilai Pengembalian

Tipe

Deskripsi

HTTPDNSResult

Hasil resolusi.

Kode contoh

val httpdns = HttpDns.getService(accountID)
val httpDnsResult = dnsService?.getHttpDnsResultForHostSyncNonBlocking("www.aliyun.com", RequestIpType.auto)
HttpDnsService httpdns = HttpDns.getService(accountID);
HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSyncNonBlocking("www.aliyun.com", RequestIpType.auto);

Bersihkan cache untuk nama domain tertentu

Jika Anda menggunakan DNS Alibaba Cloud, Anda dapat memanggil API ini untuk membersihkan cache lokal. Ini memungkinkan konfigurasi nama domain Anda berlaku dalam hitungan detik. Sebagai contoh, misalkan nama domain xxx.com diselesaikan ke alamat IP ip1. Jika ip1 sedang diserang, Anda perlu memigrasikan lalu lintas ke ip2. Prosesnya adalah sebagai berikut:

  1. Di Konsol DNS Alibaba Cloud, ubah alamat IP untuk nama domain menjadi ip2. Server HTTPDNS segera menerima perubahan ini dan membersihkan cache ip1 untuk nama domain di server.

  2. Secara manual panggil API ini untuk membersihkan cache lokal untuk nama domain xxx.com.

  3. Permintaan berikutnya dari aplikasi setelah cache dibersihkan memicu server untuk meminta alamat IP terbaru, ip2, dari server otoritatif. Ini membuat hasil resolusi baru berlaku segera di klien.

cleanHostCache

Definisi API

void cleanHostCache(ArrayList<String> hosts)

Diperkenalkan dalam versi

2.2.2

Catatan
  • Operasi ini membersihkan cache memori dan cache lokal.

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Wajib

Deskripsi

hosts

ArrayList<String>

Ya

Array nama domain yang ingin Anda bersihkan cachenya. Untuk membersihkan semua data, kirim null atau array kosong.