すべてのプロダクト
Search
ドキュメントセンター

HTTPDNS:Java SDK 統合ガイド

最終更新日:Jan 10, 2026

クライアント統合の概要では、HTTPDNS 統合の基本原則について説明しています。このガイドでは、Java SDK を使用して統合を実行する方法について説明します。

重要

Android アプリケーションについては、「Android SDK 統合ガイド」をご参照ください。Java SDK は、ローカル永続キャッシュやネットワーク変更時の自動解析など、Android 固有の機能をサポートしていません。

1. はじめに

1.1. サービスの有効化

HTTPDNS を有効化するには、「クイックスタート」をご参照ください。

1.2. 設定の取得

EMAS コンソールの開発者向け設定ページから AccountId、SecretKey、AESSecretKey を取得します。この情報は SDK の初期化に必要です。詳細については、「開発者向け設定」をご参照ください。

2. インストールと設定

ビルドツールに応じて、Gradle または Maven を使用してプロジェクトを設定します。

2.1. リポジトリアドレスの設定

SDK は Alibaba Cloud Maven リポジトリに公開されています。リポジトリアドレスを追加してください。

Gradle

次のコードを settings.gradle または build.gradle ファイルに追加します。

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

Maven

次のコードを pom.xml ファイルに追加します。

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

2.2. SDK 依存関係の追加

Gradle

build.gradle ファイルの dependencies ブロックに次のコードを追加します。

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

Maven

pom.xml ファイルの <dependencies> ブロックに次のコードを追加します。

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

3. 設定と使用方法

3.1. 設定の初期化

アプリケーションの起動後、SDK を初期化して HTTPDNS 機能を有効にします。初期化には、AccountId、SecretKey、機能トグルなどの設定が含まれます。以下のコードは一例です。

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

// 設定を作成
InitConfig config = new InitConfig.Builder()
    .setSecretKey("your-secret-key")           // 署名キー
    .setEnableHttps(true)                      // HTTPS を使用した名前解決
    .setTimeoutMillis(2000)                    // タイムアウト期間 (ミリ秒)
    .setEnableExpiredIp(true)                  // 期限切れ IP の使用を許可
    .enableMemoryCache(true)                   // メモリキャッシュを有効化 (デフォルトで有効)
    .build();

// 初期化
HttpDnsClient.init("your-account-id", config);

// クライアントインスタンスを取得
HttpDnsClient client = HttpDnsClient.getClient("your-account-id");
重要
  • `setEnableHttps` パラメーターを `true` に設定して HTTPS を有効にすると、追加料金が発生します。詳細については、「課金」をご参照ください。

  • ドメイン名情報や SDNS パラメーターに対してより高いセキュリティが必要な場合は、`setAesSecretKey` パラメーターを設定して、名前解決リクエストのコンテンツレイヤー暗号化を有効にできます。この機能には追加料金が発生します。詳細については、「課金」をご参照ください。

3.1.1. ログの設定

アプリケーション開発では、HttpDnsLog を設定して HTTPDNS ログを出力します:

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

// ログ出力を有効化
HttpDnsLog.enable(true);

// カスタムロギングインターフェイスを設定
HttpDnsLog.setLogger(new ILogger() {
    @Override
    public void log(String msg) {
        System.out.println("[HTTPDNS] " + msg);
    }
});

3.1.2. SessionId の記録

アプリケーションの実行中に `sessionId` を取得し、データインジェストシステムに記録して、オンラインの問題のトラブルシューティングに役立てます。

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

3.2. ドメイン名の名前解決

3.2.1. 事前解析

HTTPDNS を初期化した後、頻繁にアクセスされるホットスポットドメイン名に対して事前解析を設定できます。これにより、SDK が事前にドメイン名を解決し、将来の名前解決リクエストのレイテンシーを短縮します。以下のコードは一例です。

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

3.2.2. ドメイン名の解決

ドメイン名を解決するには、ドメイン名の名前解決メソッドを呼び出して IP アドレスを取得します。以下のコードは一例です。

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. 次のステップ

IP アドレスを取得したら、それをネットワークリクエストに適用します。使用するネットワークライブラリに応じて、「Java における HTTPDNS と OkHttp のベストプラクティス」または「Java における HTTPDNS と Apache HttpClient のベストプラクティス」をご参照ください。

SDK をより詳細に設定したり、認証リクエストなどの他の機能を使用したりするには、「Java SDK API」をご参照ください。

5. 注意事項

  1. SDK アップグレード後のコンパイル失敗

    SDK をアップグレードした後にコンパイルが失敗する場合、SDK API が変更されている可能性があります。「Java SDK API」を参照し、新しい代替インターフェイスを使用してください。

  2. フォールバックコードの実装

    フォールバックコードを実装する必要があります。HTTPDNS が期待される結果を返さない場合、アプリケーションはローカル DNS を使用したドメイン名の名前解決にフォールバックする必要があります。

  3. HTTPDNS からの IP アドレスと sessionId の記録

    名前解決の問題をトラブルシューティングするためのソリューションを提供しています。HTTPDNS から取得した IP アドレスと `sessionId` をログに記録する必要があります。詳細については、「セッショントラッキングソリューションを使用して名前解決エラーをトラブルシューティングする方法」をご参照ください。