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

HTTPDNS:Java SDK API

最終更新日:Jan 10, 2026

このドキュメントでは、Java SDK の API 操作について説明します。

1. 基本的な設定操作

1.1 初期化の設定

HTTPDNS サービスの設定を初期化します。他の API 操作を呼び出す前に、この初期化を完了させる必要があります。

操作の定義

static void init(String accountId, InitConfig config)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

accountId

String

はい

システムによって割り当てられたアカウント ID。EMAS コンソールから取得します。

config

InitConfig

はい

初期化設定オブジェクト。

コード例

InitConfig config = new InitConfig.Builder()
    .setSecretKey("your-secret-key")
    .setEnableHttps(true)
    .setTimeoutMillis(2000)
    .setEnableExpiredIp(true)
    .build();

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

1.2 サービスインスタンスの取得

後続の名前解決操作のために、HTTPDNS クライアントインスタンスを取得します。

インターフェイスの定義

static HttpDnsClient getClient(String accountId)
static HttpDnsClient getClient(String accountId, String secretKey)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

accountId

String

はい

システムによって割り当てられたアカウント ID。

secretKey

String

いいえ

認証キー。

戻り値の説明

タイプ

説明

HttpDnsClient

HTTPDNS クライアントインスタンス。

コード例

HttpDnsClient client = HttpDnsClient.getClient("your-account-id");

1.3 InitConfig 設定項目

InitConfig.Builder を使用して初期化設定を構築できます。

setSecretKey

HTTPDNS 解決時にリクエストの署名に使用するキーを設定します。

キーを設定すると、SDK はサーバーに送信するリクエストに署名します。これにより、HTTPDNS サーバーは解決リクエストを認証し、改ざん防止機能を提供します。このプロセスにより、SDK とサーバー間の対話のセキュリティが向上します。

インターフェイスの定義

InitConfig.Builder setSecretKey(String secretKey)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

secretKey

String

はい

署名キー。

setAesSecretKey

HTTPDNS 解決時の暗号化に使用するキーを設定します。

暗号鍵を設定すると、SDK はサーバーサイドにリクエストを送信する際に、AES アルゴリズムを使用してリクエストパラメーターと応答を暗号化します。この暗号化機能はセキュリティを強化しますが、課金ロジックにも影響します。詳細については、「製品課金」をご参照ください。

インターフェイスの定義

InitConfig.Builder setAesSecretKey(String aesSecretKey)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

aesSecretKey

String

はい

暗号鍵。

setEnableHttps

デフォルトでは、HTTPDNS SDK は HTTP プロトコルを使用して解決リクエストを送信します。HTTPS プロトコルを使用するには、SDK が HTTPS を使用して名前解決を行うように設定できます。

HTTPS リクエストはより高いセキュリティを提供します。ただし、HTTP リクエストと HTTPS リクエストでは課金方法が異なります。詳細については、「製品課金」をご参照ください。

説明

HTTPS を使用しているのに、なぜ暗号化が必要なのか疑問に思われるかもしれません。答えは「はい」です。両者は異なるレイヤーで機能します。HTTPS プロトコルはトランスポート層のセキュリティを保証しますが、パケットをキャプチャすればパラメーターや応答の詳細を閲覧できます。AES 暗号化は HTTPDNS サービスレイヤーでのセキュリティを保証します。パケットをキャプチャしても、プレーンテキストのコンテンツを見ることはできません。したがって、必要に応じて両方を有効にすることができます。

インターフェイスの定義

InitConfig.Builder setEnableHttps(boolean enableHttps)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

enableHttps

boolean

はい

名前解決に HTTPS プロトコルを使用するかどうかを指定します。`true`:HTTPS 解決を有効にします。`false`:HTTPS 解決を無効にします。

setTimeoutMillis

名前解決のタイムアウト期間を設定します。デフォルト値は 2000 ミリ秒です。

インターフェイスの定義

InitConfig.Builder setTimeoutMillis(int timeoutMillis)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

timeoutMillis

int

はい

名前解決のタイムアウト期間 (ミリ秒)。デフォルト値は 2000 ミリ秒です。最大値は 5000 ミリ秒です。

setEnableExpiredIp

SDK は DNS プロトコルに従い、TTL (Time to Live) に基づいて名前解決の結果をキャッシュします。これにより、アプリケーションがネットワークリクエストを開始する際の IP アドレス取得の効率が向上します。キャッシュの有効期限が切れた場合、アプリケーションが解決操作を呼び出して IP アドレスを取得すると、状況に応じて異なる動作をします:

  1. アプリケーションが同期非ブロッキング操作を呼び出し、キャッシュが期限切れの場合、SDK はサーバーから新しい解決結果をすぐに取得できません。スレッドのブロッキングを避けるため、操作は空の結果を返します。呼び出し元は LocalDNS 解決へのフォールバックを処理する必要があります。

  2. アプリケーションが同期または非同期操作を呼び出すと、SDK は解決リクエストを送信してサーバーから新しい結果を取得します。このプロセスには時間がかかります。同期操作は新しい結果が得られるまでスレッドをブロックします。非同期操作は新しい結果が得られた後にのみコールバックを提供します。

SDK は、期限切れの IP アドレスを再利用するオプションを提供します。このオプションを true に設定すると、キャッシュされた IP が期限切れであっても、操作はすぐに期限切れの IP アドレスを返すことができます。これにより、DNS ステップの処理時間が短縮され、ネットワークリクエストのパフォーマンスが向上します。同時に、SDK が IP の期限切れを検出すると、非同期スレッドを開始してドメイン名を解決し、新しい解決結果を取得します。

したがって、このオプションを有効にすることによる副作用は最小限です。特に、プライマリサイトのドメイン名や静的ゲートウェイのドメイン名など、ドメイン名自体の解決設定が頻繁に変更されない場合に有効です。ドメイン名の解決が変更された場合でも、このオプションを有効にすることによる影響は、ドメインのキャッシュが期限切れになった後の最初のリクエストに限定されます。これは、SDK が呼び出されて期限切れの IP を検出すると、常に即座にドメイン名の解決の更新を開始するためです

デフォルトで有効になっています。

重要

true に設定すると、SDK は期限切れの IP アドレスをリアルタイムで返し、最新の IP 情報を取得するために非同期更新も実行します。

インターフェイスの定義

InitConfig.Builder setEnableExpiredIp(boolean enableExpiredIp)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

enableExpiredIp

boolean

はい

TTL を超えた IP アドレスの返却を許可するかどうかを指定します。`true`:期限切れの IP アドレスの返却を許可します。`false`:期限切れの IP アドレスを返却しません。

enableMemoryCache

メモリキャッシュを有効にするかどうかを設定します。

インターフェイスの定義

InitConfig.Builder enableMemoryCache(boolean enable)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

enable

boolean

はい

`true`:メモリキャッシュを有効にします (デフォルト)。`false`:メモリキャッシュを無効にします。

setRegion

アプリケーションが中国以外の環境で HTTPDNS を使用する必要がある場合、この SDK の起動サービスノードを設定して解決効率を向上させることができます。ノードを設定すると、SDK はそのノードを名前解決および後続のスケジューリングノードリストの更新に使用します。

インターフェイスの定義

InitConfig.Builder setRegion(Region region)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

region

Region

はい

サービスノードリージョンの列挙値。中国以外のサービスリージョンを選択するために使用します。指定しない場合、中国本土のサービスノードが使用されます。

setIPRankingList

IP プリファレンスリストを設定します。この操作を設定すると、対応するドメイン名が解決された場合、SDK は返された IP アドレスに対して IP 速度テストを実行します。返されたリストを動的にソートして、最初の IP アドレスがより良い可用性を持つようにします。

説明

IPv4 アドレスのプリファレンスソートのみがサポートされています。

インターフェイスの定義

InitConfig.Builder setIPRankingList(List<? extends IPRankingBean> ipRankingList)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

ipRankingList

List<IPRankingBean>

はい

IP プリファレンス設定リスト。

configCacheTtlChanger

デフォルトでは、各解決結果はサーバーから提供された TTL を使用して期限切れかどうかを判断します。解決結果の TTL を変更するには、この操作を使用して設定できます。

インターフェイスの定義

InitConfig.Builder configCacheTtlChanger(CacheTtlChanger changer)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

changer

CacheTtlChanger

はい

カスタム TTL インターフェイスの実装

setNotUseHttpDnsFilter

特定のドメイン名が HTTPDNS を使用して解決されるのを防ぐために、この操作でそれらのドメイン名をフィルタリングできます。フィルタリングされたドメイン名は空の解決結果を返します。名前解決には LocalDNS へのフォールバックが必要です。

インターフェイスの定義

InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

filter

NotUseHttpDnsFilter

はい

ブラックリストポリシーを設定します。

setSdnsGlobalParams

カスタム解決 (SDNS) のグローバルパラメーターを設定します。これらのグローバルパラメーターは、カスタム解決操作の追加パラメーター設定には影響しません。これらはカスタム解決操作の追加パラメーターとマージされます。各カスタム解決リクエストはこれらのグローバルパラメーターを伴います。

インターフェイスの定義

InitConfig.Builder setSdnsGlobalParams(Map<String, String> params)

クラス

InitConfig.Builder

パラメーター

パラメーター

タイプ

必須

説明

params

Map<String, String>

はい

カスタム解像度用のグローバルパラメーター。

2. 名前解決操作

2.1 事前解決ドメイン名の設定

アプリケーションが起動し、SDK の初期化が完了した後、すぐにこの操作を呼び出すことができます。後で使用する可能性のあるホットスポットドメイン名を設定できます。これにより、SDK はそれらを事前に解決し、後続の解決リクエストのレイテンシーを削減します。

アプリケーションの実行中にこの操作を呼び出すと、SDK は指定されたリスト内のドメイン名を即座に解決します。これにより、これらのドメイン名の解決結果が更新され、キャッシュに記録されます。これは強制的な更新と同等です。これは通常、特定のビジネスアクションの後に現在のドメイン名解決を更新し、新しいドメイン名スケジューリングを強制するために使用されます。

重要

解決効率と応答速度のバランスを取るため、SDK はサーバーに送信される各バッチ解決タスクを 5 つのドメイン名に制限しています。したがって、事前解決リストに 5 つを超えるドメイン名が含まれている場合、SDK は自動的にバッチで解決を送信します。

setPreResolveHosts

インターフェイスの定義

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

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

hostList

List<String>

はい

事前解決用のドメイン名のリスト。解決するドメイン名は純粋なドメイン名文字列である必要があります。プロトコルヘッダー (http:// など)、パス、またはポートを含めることはできません。そうしないと、解決例外が発生する可能性があります。ワイルドカードドメイン名はサポートされていません。

requestIpType

RequestIpType

いいえ

事前解決の IP タイプ。このパラメーターが指定されていない場合、デフォルト値は `RequestIpType.v4` です。

コード例

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

2.2 同期非ブロッキング解決

  • 同期非ブロッキング操作を使用してドメイン名を解決しても、現在のスレッドはブロックされませんが、空の結果が返されることがあります。

  • この操作はキャッシュのみを照会し、キャッシュから解決結果を返します。キャッシュに解決結果がないか、結果が期限切れの場合、ドメイン名の解決はワーカースレッドで実行されます。解決が成功した後、キャッシュは次のドメイン名解決呼び出しのために更新されます。

getHttpDnsResultForHostSyncNonBlocking

インターフェイスの定義

HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, String clientIp)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, Map<String, String> params, String cacheKey)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

type

RequestIpType

はい

解決する IP タイプ。`RequestIpType.both` の使用を推奨します。

clientIp

String

いいえ

クライアント IP アドレス。これは、より正確な解決結果を得るために、サーバーサイドシナリオで実際のクライアント IP アドレスを指定するために使用されます。

params

Map<String, String>

いいえ

名前解決に伴う追加パラメーター。サーバーサイドのカスタム解決関数の `event.parameters` パラメーターに対応します。

cacheKey

String

いいえ

ドメイン名のローカルキャッシュキー。SDNS を使用する場合、null 以外の値を渡す必要があります。追加パラメーターの変更によりサーバーからの再解決が必要な場合は、`cacheKey` を変更する必要があります。

戻り値

タイプ

説明

HTTPDNSResult

解決結果。

コード例

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

if (result != null && result.getIps() != null && result.getIps().length > 0) {
    String ip = result.getIps()[0];
}

2.3 同期解決

  • 同期解決操作を使用してドメイン名を解決すると、有効な解決結果が取得されて返されるまで現在のスレッドがブロックされます。

  • この操作はまずキャッシュを照会します。キャッシュに利用可能な解決結果が存在する場合、それはすぐに返されます。キャッシュに利用可能な結果がない場合、解決を呼び出したスレッドはブロックされます。ドメイン名の解決はワーカースレッドで実行されます。解決が完了すると解決結果が返されるか、タイムアウト期間に達すると空の値が返されます。

重要

同期解決操作の合計時間はタイムアウト設定によって制御されます。タイムアウト期間内に解決が成功しない場合、空の解決結果がすぐに返されます。

getHttpDnsResultForHostSync

インターフェイスの定義

HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, String clientIp)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, Map<String, String> params, String cacheKey)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

type

RequestIpType

はい

解決する IP タイプ。`RequestIpType.both` の使用を推奨します。

clientIp

String

いいえ

クライアント IP アドレス。これは、サーバーサイドシナリオで実際のクライアント IP アドレスを指定するために使用されます。

params

Map<String, String>

いいえ

名前解決に伴う追加パラメーター。サーバーサイドのカスタム解決関数の `event.parameters` パラメーターに対応します。

cacheKey

String

いいえ

ドメイン名のローカルキャッシュキー。SDNS を使用する場合、null 以外の値を渡す必要があります。追加パラメーターの変更によりサーバーからの再解決が必要な場合は、`cacheKey` を変更する必要があります。

戻り値

タイプ

説明

HTTPDNSResult

解決結果。

コード例

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

2.4 非同期解決

  • 非同期解決操作を使用してドメイン名を解決しても、現在のスレッドはブロックされません。解決結果はコールバックを通じて返されます。

  • この操作はまずキャッシュを照会します。キャッシュに利用可能な解決結果が存在する場合、それはすぐにコールバックを通じて返されます。キャッシュに利用可能な結果がない場合、ドメイン名の解決はワーカースレッドで実行されます。解決が完了するかタイムアウト期間に達すると、解決結果はコールバックを通じて返されます。

重要

非同期解決操作の合計時間はタイムアウト設定によって制御されます。タイムアウト期間内に解決が成功しない場合、空の解決結果がすぐにコールバックを通じて返されます。

getHttpDnsResultForHostAsync

インターフェイスの定義

void getHttpDnsResultForHostAsync(String host, RequestIpType type, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, String clientIp, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, Map<String, String> params, String cacheKey, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp, HttpDnsCallback callback)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

type

RequestIpType

はい

解決する IP タイプ。`RequestIpType.both` の使用を推奨します。

callback

HttpDnsCallback

はい

ドメイン名解決結果のコールバック操作。

clientIp

String

いいえ

クライアント IP アドレス。サーバーサイドシナリオ用。

params

Map<String, String>

いいえ

名前解決に伴う追加パラメーター。サーバーサイドのカスタム解決関数の `event.parameters` パラメーターに対応します。

cacheKey

String

いいえ

ドメイン名のローカルキャッシュキー。SDNS を使用する場合、null 以外の値を渡す必要があります。追加パラメーターの変更によりサーバーからの再解決が必要な場合は、`cacheKey` を変更する必要があります。

コード例

client.getHttpDnsResultForHostAsync("www.example.com", RequestIpType.both, 
    new HttpDnsCallback() {
        @Override
        public void onHttpDnsCompleted(HTTPDNSResult result) {
            if (result != null && result.getIps() != null) {
                String[] ips = result.getIps();
                // 解決結果を使用します。
            }
        }
    });

3. キャッシュ管理操作

3.1 特定ドメイン名のキャッシュクリア

Alibaba Cloud DNS のユーザーは、この操作を呼び出してローカルキャッシュをクリアできます。これにより、ドメイン名の設定変更が数秒で反映されます。

たとえば、ドメイン名が xxx.com で、その解決済み IP アドレスが ip1 であるとします。ip1 が攻撃を受けている場合、トラフィックを ip2 に移行する必要があります。フローは次のとおりです:

  1. まず、Cloud DNS コンソールで、ドメイン名の IP アドレスを ip2 に変更します。HTTPDNS サーバーはこの変更情報を即座に取得し、サーバーサイドでそのドメイン名の ip1 キャッシュをパージします。

  2. 手動でこの操作を呼び出して、xxx.com ドメイン名のローカルキャッシュをクリアします。

  3. アプリケーションがキャッシュをクリアした後の次のリクエストにより、サーバーサイドは権威サーバーに再リクエストして最新の解決済み IP アドレス ip2 を取得します。これにより、フロントエンドの解決結果は即座に ip2 として有効になります。

cleanHostCache

インターフェイスの定義

void cleanHostCache(ArrayList<String> hosts)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

hosts

ArrayList<String>

はい

削除するホストドメイン名の配列です。すべてのデータを削除する場合は、`null` または空の配列を渡してください。

コード例

// 特定のドメイン名のキャッシュをクリアします。
ArrayList<String> hosts = new ArrayList<>();
hosts.add("www.example.com");
client.cleanHostCache(hosts);

// すべてのキャッシュをクリアします。
client.cleanHostCache(null);

4. トラブルシューティングと追跡操作

4.1 SessionId の取得

解決プロセスを追跡するために使用される sessionId を取得します。解決例外が発生した場合は、DingTalk、チケット、またはその他のチャネルを通じて技術サポートを求める際に、この情報を提供してください。

説明

sessionId はランダムに生成され、長さは 12 文字で、アプリケーションライフサイクル全体で変更されません。

getSessionId

インターフェイスの定義

String getSessionId()

クラス

HttpDnsClient

戻り値

タイプ

説明

String

sessionId

コード例

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

4.2 SDK バージョン番号の取得

現在の SDK バージョン番号を取得します。

getSdkVersion

インターフェイスの定義

String getSdkVersion()

クラス

HttpDnsClient

戻り値

タイプ

説明

String

SDK バージョン番号。

コード例

String version = client.getSdkVersion();
System.out.println("SDK Version: " + version);

4.3 ログ制御

HttpDnsLog.enable

HTTPDNS のロギングを有効にするかどうかを設定します。デフォルトでは無効になっています。

インターフェイスの定義

static void enable(boolean enable)

クラス

HttpDnsLog

パラメーター

パラメーター

タイプ

必須

説明

enable

boolean

はい

ログを印刷するかどうか。

コード例

HttpDnsLog.enable(true);

HttpDnsLog.setLogger

ログコールバッククラスを設定することで、SDK が出力するログを取得できます。

インターフェイスの定義

static void setLogger(ILogger logger)

クラス

HttpDnsLog

パラメーター

パラメーター

タイプ

必須

説明

logger

ILogger

はい

この操作を設定すると、SDK の内部ログが ILogger インターフェイスのコールバックを通じて返されます。これにより、ログの印刷と保存を制御できます。

コード例

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

HttpDnsLog.removeLogger

ログコールバッククラスを削除します。

インターフェイスの定義

static void removeLogger(ILogger logger)

クラス

HttpDnsLog

パラメーター

パラメーター

タイプ

必須

説明

logger

ILogger

はい

以前に追加されたロガー。

コード例

HttpDnsLog.removeLogger(myLogger);

5. その他の操作

5.1 リージョンの設定

リージョンノードを動的に更新します。

setRegion

インターフェイスの定義

void setRegion(Region region)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

region

Region

はい

リージョンノード。サービスエリア選択のために中国以外のリージョンを設定します。

コード例

client.setRegion(Region.HK);  // 中国 (香港) ノードに切り替えます。

5.2 署名時刻の補正

この操作を実行すると、時刻のずれが発生した場合、各ネットワークリクエストでデバイスの時刻が補正されます。この操作を実行しない場合、デバイスの時刻が使用されます。

setAuthCurrentTime

インターフェイスの定義

void setAuthCurrentTime(long time)

クラス

HttpDnsClient

パラメーター

パラメーター

タイプ

必須

説明

time

long

はい

現在の UNIX タイムスタンプ (ミリ秒)。

コード例

HttpDnsClient client = HttpDnsClient.getClient(accountId);
client.setAuthCurrentTime(System.currentTimeMillis());

6. 共通データ構造

6.1 HTTPDNSResult

名前解決操作によって返される解決結果のデータクラス。

getHost

対応するドメイン名を取得します。

インターフェイスの定義

String getHost()

戻り値

タイプ

説明

String

ドメイン名。

getIps

解決された IPv4 アドレスを取得します。

インターフェイスの定義

String[] getIps()

戻り値

タイプ

説明

String[]

ドメイン名に対して解決された IPv4 アドレス。

getIpv6s

解決された IPv6 アドレスを取得します。

インターフェイスの定義

String[] getIpv6s()

戻り値

タイプ

説明

String[]

ドメイン名に対して解決された IPv6 アドレス。

getExtras

解決から追加パラメーターを取得します。カスタム解決のみがこのデータを持ちます。

インターフェイスの定義

String getExtras()

戻り値

タイプ

説明

String

追加パラメーター文字列。

isExpired

解決結果が期限切れかどうかを示します。有効期限は、結果が取得された時刻とドメイン名に設定された TTL に基づいて計算されます。

インターフェイスの定義

boolean isExpired()

戻り値

タイプ

説明

boolean

`true`:期限切れ。`false`:期限切れではない。

getTtl

解決結果の TTL (Time to Live) を取得します。

インターフェイスの定義

int getTtl()

戻り値

タイプ

説明

int

TTL (秒)。

6.2 RequestIpType

リクエストされた IP タイプの列挙。

列挙値

説明

v4

解決するタイプは IPv4 です。

v6

解決するタイプは IPv6 です。

both

解決するタイプは IPv4 と IPv6 です。

コード例

// IPv4 と IPv6 の両方を解決します。
HTTPDNSResult result = client.getHttpDnsResultForHostSyncNonBlocking(
    "www.example.com", 
    RequestIpType.both
);

6.3 リージョン

サービスノードリージョンの列挙。中国以外のサービスリージョンを選択するために使用します。

列挙値

説明

DEFAULT

中国本土 (デフォルト)

HK

中国 (香港)

SG

シンガポール

DE

ドイツ

US

米国

コード例

new InitConfig.Builder().setRegion(Region.SG);  // シンガポールノード

6.4 HttpDnsCallback

非同期の名前解決操作のコールバックインターフェイス。

onHttpDnsCompleted

解決完了後のコールバック関数。この関数は成功と失敗の両方で呼び出されます。

インターフェイスの定義

void onHttpDnsCompleted(HTTPDNSResult result)

パラメーター

パラメーター

タイプ

説明

result

HTTPDNSResult

解決結果オブジェクト。

コード例

client.getHttpDnsResultForHostAsync("www.example.com", RequestIpType.both, 
    new HttpDnsCallback() {
        @Override
        public void onHttpDnsCompleted(HTTPDNSResult result) {
            if (result != null && result.getIps() != null) {
                // 解決に成功しました。
            } else {
                // 解決に失敗したか、結果がありません。
            }
        }
    });

6.5 ILogger

ログインターフェイス。

log

ログメソッド。

インターフェイスの定義

void log(String msg)

パラメーター

パラメーター

タイプ

説明

msg

String

ログ。

コード例

HttpDnsLog.setLogger(new ILogger() {
    @Override
    public void log(String msg) {
        // カスタムログ処理。
        System.out.println("[HTTPDNS] " + msg);
    }
});

6.6 CacheTtlChanger

ドメイン名解決結果の TTL をカスタマイズするためのインターフェイス。

changeCacheTtl

TTL をカスタマイズします。

インターフェイスの定義

int changeCacheTtl(String host, RequestIpType type, int ttl)

パラメーター

パラメーター

タイプ

説明

host

String

ドメイン名。

type

RequestIpType

IP タイプ。

ttl

int

元の TTL。

応答の説明

タイプ

説明

int

カスタマイズされた TTL。カスタマイズが不要な場合は、元の TTL を返します。

コード例

new InitConfig.Builder()
    .configCacheTtlChanger(new CacheTtlChanger() {
        @Override
        public int changeCacheTtl(String host, RequestIpType type, int ttl) {
            if ("www.aliyun.com".equals(host)) {
                return ttl * 10;
            }
            return ttl;
        }
    });

6.7 NotUseHttpDnsFilter

HTTPDNS で解決すべきでないドメイン名をフィルタリングするためのインターフェイス。

notUseHttpDns

HTTPDNS で解決すべきでないドメイン名を設定します。

インターフェイスの定義

boolean notUseHttpDns(String hostName)

パラメーター

パラメーター

タイプ

説明

hostName

String

ドメイン名。

戻り値

タイプ

説明

boolean

`true`:現在のドメイン名をフィルタリングします。現在のドメイン名はクラウドの HTTPDNS では解決されません。`false`:現在のドメイン名をフィルタリングしません。現在のドメイン名はクラウドの HTTPDNS で解決されます。

コード例

new InitConfig.Builder()
    .setNotUseHttpDnsFilter(new NotUseHttpDnsFilter() {
        @Override
        public boolean notUseHttpDns(String hostName) {
            return "www.aliyun.com".equals(hostName);
        }
    });

6.8 IPRankingBean

IP プリファレンス設定項目。この操作を設定すると、対応するドメイン名が解決された場合、SDK は返された IP アドレスに対して IP 速度テストを実行します。返されたリストを動的にソートして、最初の IP アドレスがより良い可用性を持つようにします。

コンストラクター

IPRankingBean(String hostName, int port)

パラメーター

パラメーター

タイプ

説明

hostName

String

IP プリファレンスソート用のドメイン名。

port

int

速度テストに使用するポート。

getHostName

ドメイン名を取得します。

インターフェイスの定義

String getHostName()

getPort

ポートを取得します。

インターフェイスの定義

int getPort()

コード例

List<IPRankingBean> list = new ArrayList<>();
list.add(new IPRankingBean("www.example.com", 443));
list.add(new IPRankingBean("api.example.com", 8080));

new InitConfig.Builder()
    .setIPRankingList(list);