All Products
Search
Document Center

HTTPDNS:Panduan integrasi Java SDK

Last Updated:Jan 10, 2026

Topik Ikhtisar integrasi Client menjelaskan prinsip dasar integrasi HTTPDNS. Panduan ini menjelaskan cara menggunakan Java SDK untuk melakukan integrasi tersebut.

Penting

Untuk aplikasi Android, lihat Panduan integrasi Android SDK. Java SDK tidak mendukung fitur khusus Android, seperti cache persisten lokal atau penguraian otomatis saat terjadi perubahan jaringan.

1. Memulai

1.1. Aktifkan layanan

Lihat Quick Start untuk mengaktifkan HTTPDNS.

1.2. Dapatkan konfigurasi

Ambil AccountId, SecretKey, dan AESSecretKey Anda dari halaman Developer Configurations di Konsol EMAS. Informasi ini diperlukan untuk menginisialisasi SDK. Untuk informasi selengkapnya, lihat Developer configurations.

2. Instalasi dan konfigurasi

Konfigurasikan proyek Anda menggunakan Gradle atau Maven, tergantung pada tool build yang Anda gunakan.

2.1. Konfigurasikan alamat repositori

SDK dipublikasikan ke Repositori Maven Alibaba Cloud. Tambahkan alamat repositori tersebut.

Gradle

Tambahkan kode berikut ke file settings.gradle atau build.gradle Anda:

repositories {
    maven { 
      url 'https://maven.aliyun.com/nexus/content/repositories/releases/' 
    }
}

Maven

Tambahkan kode berikut ke file pom.xml Anda:

<repositories>
    <repository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/nexus/content/repositories/releases/</url>
    </repository>
</repositories>

2.2. Tambahkan dependensi SDK

Gradle

Pada file build.gradle Anda, tambahkan kode berikut ke blok dependencies:

dependencies {
    implementation 'com.aliyun.ams:alicloud-java-httpdns:1.0.0'
}

Maven

Pada file pom.xml Anda, tambahkan kode berikut ke blok <dependencies>:

<dependency>
    <groupId>com.aliyun.ams</groupId>
    <artifactId>alicloud-java-httpdns</artifactId>
    <version>1.0.0</version>
</dependency>

3. Konfigurasi dan penggunaan

3.1. Inisialisasi konfigurasi

Setelah aplikasi Anda dimulai, inisialisasi SDK untuk mengaktifkan fitur HTTPDNS. Inisialisasi melibatkan konfigurasi pengaturan seperti AccountId, SecretKey, dan toggle fitur. Kode berikut memberikan contoh:

import com.alibaba.sdk.java.httpdns.HttpDnsClient;
import com.alibaba.sdk.java.httpdns.InitConfig;
import com.alibaba.sdk.java.httpdns.RequestIpType;

// Buat konfigurasi.
InitConfig config = new InitConfig.Builder()
    .setSecretKey("your-secret-key")           // Kunci penandatanganan
    .setEnableHttps(true)                      // Gunakan HTTPS untuk resolusi.
    .setTimeoutMillis(2000)                    // Periode timeout dalam milidetik.
    .setEnableExpiredIp(true)                  // Izinkan penggunaan IP yang telah kedaluwarsa.
    .enableMemoryCache(true)                   // Aktifkan cache memori (secara default sudah aktif).
    .build();

// Inisialisasi.
HttpDnsClient.init("your-account-id", config);

// Dapatkan instans client.
HttpDnsClient client = HttpDnsClient.getClient("your-account-id");
Penting
  • Mengaktifkan HTTPS dengan mengatur parameter setEnableHttps ke true akan menimbulkan biaya tambahan. Untuk informasi selengkapnya, lihat Billing.

  • Jika Anda memerlukan keamanan lebih tinggi untuk informasi nama domain atau parameter SDNS, Anda dapat mengatur parameter setAesSecretKey untuk mengaktifkan enkripsi lapisan konten pada permintaan resolusi. Fitur ini menimbulkan biaya tambahan. Untuk informasi selengkapnya, lihat Billing.

3.1.1. Konfigurasikan log

Selama pengembangan aplikasi, konfigurasikan HttpDnsLog untuk mengeluarkan log HTTPDNS:

import com.alibaba.sdk.java.httpdns.log.HttpDnsLog;
import com.alibaba.sdk.java.httpdns.ILogger;

// Aktifkan output log.
HttpDnsLog.enable(true);

// Atur antarmuka logging kustom.
HttpDnsLog.setLogger(new ILogger() {
    @Override
    public void log(String msg) {
        System.out.println("[HTTPDNS] " + msg);
    }
});

3.1.2. Catat SessionId

Saat aplikasi Anda berjalan, ambil sessionId dan catat dalam sistem Ingesti Data Anda untuk membantu pemecahan masalah online:

String sessionId = client.getSessionId();
System.out.println("SessionId = " + sessionId);

3.2. Resolusi nama domain

3.2.1 Pre-parsing

Setelah Anda menginisialisasi HTTPDNS, Anda dapat mengonfigurasi pre-resolution untuk nama domain hot spot yang sering diakses. Hal ini memungkinkan SDK melakukan resolusi lebih awal dan mengurangi latensi pada permintaan resolusi berikutnya. Kode berikut memberikan contoh:

List<String> hosts = Arrays.asList("www.aliyun.com", "www.example.com");
client.setPreResolveHosts(hosts, RequestIpType.both);

3.2.2. Resolusi nama domain

Untuk melakukan resolusi nama domain, panggil metode resolusi nama domain untuk mengambil alamat IP. Kode berikut memberikan contoh:

HTTPDNSResult result = client.getHttpDnsResultForHostSyncNonBlocking(
    "www.aliyun.com", 
    RequestIpType.both
);

if (result != null && result.getIps() != null) {
    String[] ipv4List = result.getIps();
}

if (result != null && result.getIpv6s() != null) {
    String[] ipv6List = result.getIpv6s();
}

4. Langkah selanjutnya

Setelah Anda mendapatkan alamat IP, terapkan pada permintaan jaringan Anda. Bergantung pada library jaringan yang Anda gunakan, lihat Best practices for HTTPDNS and OkHttp in Java atau Best practices for HTTPDNS and Apache HttpClient in Java.

Untuk mengonfigurasi SDK secara lebih rinci atau menggunakan fitur lain seperti permintaan otentikasi, lihat Java SDK API.

5. Catatan

  1. Kompilasi gagal setelah peningkatan SDK

    Jika kompilasi gagal setelah Anda melakukan peningkatan SDK, kemungkinan besar API SDK telah berubah. Lihat Java SDK API dan gunakan antarmuka pengganti yang baru.

  2. Buat kode fallback

    Anda harus menyertakan kode fallback. Jika HTTPDNS gagal mengembalikan hasil yang diharapkan, aplikasi Anda harus kembali menggunakan DNS lokal untuk resolusi nama domain.

  3. Catat alamat IP dan sessionId dari HTTPDNS

    Kami menyediakan solusi untuk memecahkan masalah resolusi. Anda harus mencatat alamat IP dan sessionId yang diperoleh dari HTTPDNS dalam log Anda. Untuk informasi selengkapnya, lihat How to use the session tracking solution to troubleshoot resolution errors.