Pengenalan
Kit pengembangan perangkat lunak (SDK) HTTPDNS menyediakan berbagai API untuk resolusi nama domain dan fitur terkait, termasuk:
Blacklist nama domain. Untuk informasi lebih lanjut, lihat Setel blacklist nama domain untuk HTTPDNS.
TTL kustom. Untuk informasi lebih lanjut, lihat Sesuaikan TTL hasil resolusi.
Peringkat alamat IP. Untuk informasi lebih lanjut, lihat Aktifkan peringkat alamat IP.
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.
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
|
requestIpType | RequestIpType | Tidak | Tipe alamat IP untuk praresolusi. Kami merekomendasikan menggunakan RequestIpType.both. Enumerasi tipe alamat IP untuk diselesaikan. Nilai valid:
|
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.
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:
|
Nilai Pengembalian
Tipe | Deskripsi |
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.
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:
|
callback | 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:
|
Nilai Pengembalian
Tipe | Deskripsi |
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:
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.
Secara manual panggil API ini untuk membersihkan cache lokal untuk nama domain xxx.com.
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
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. |