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

HTTPDNS:ドメイン名前解決 API

最終更新日:Oct 10, 2025

概要

HTTPDNS ソフトウェア開発キット (SDK) は、豊富なドメイン名前解決 API と、以下を含むその他の関連機能を提供します。

事前解決用のドメイン名を設定する

アプリが起動し、SDK が初期化された後、すぐにこの API を呼び出して、後で使用する可能性のあるホットスポットドメイン名を設定します。これにより、SDK はこれらのドメイン名を事前に解決し、後続の名前解決リクエストの待機時間を短縮できます。

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

重要

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

<u>setPreResolveHosts</u>

API 定義

void setPreResolveHosts(ArrayList<String> hostList)

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

導入バージョン

2.4.0

クラス

HttpDnsService

パラメーター

パラメーター

タイプ

必須

説明

hostList

ArrayList<String>

はい

事前解決するドメイン名のリスト。requestIpType パラメーターが指定されていない場合、デフォルト値は RequestIpType.v4 です。

重要
  • 解決するドメイン名は、純粋なドメイン名文字列である必要があります。プロトコルヘッダー (http:// など)、パス、またはポートを含めることはできません。そうしないと、名前解決が失敗する可能性があります。

  • ワイルドカードドメイン名はサポートされていません。

  • 正しい例:

     ArrayList<String>  hostList = new ArrayList<>();
     hostList.add("www.aliyun.com");
     hostList.add("www.taobao.com");          
  • 不正な例:

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

requestIpType

RequestIpType

いいえ

事前解決する IP アドレスのタイプ。RequestIpType.both の使用を推奨します。

解決する IP アドレスタイプの列挙。有効な値:

  • v4: IPv4 アドレスに解決します。

  • v6: IPv6 アドレスに解決します。

  • both: IPv4 と IPv6 の両方のアドレスに解決します。

  • auto: SDK は、デバイスの現在のネットワークスタックに基づいてアドレスタイプを決定します。デフォルトでは、IPv4 アドレスに解決します。現在のネットワークスタックが IPv6 をサポートしている場合、SDK は IPv6 アドレスへの解決も試みます。

同期ドメイン名前解決

  • 同期名前解決 API は、有効な名前解決結果が取得されて返されるまで、現在のスレッドをブロックします。

  • この API はまずキャッシュをクエリします。キャッシュに有効な名前解決結果が存在する場合、キャッシュされた結果がすぐに返されます。キャッシュに有効な結果が見つからない場合、API は呼び出し元のスレッドをブロックし、ワーカースレッドでドメイン名前解決を実行します。名前解決が完了すると、結果を返します。タイムアウト期間に達した場合、null 値を返します。

  • この API がメインスレッドで誤用され、アプリがカクつくのを防ぐため、API は呼び出し元のスレッドを検出します。メインスレッドの場合、API は自動的に getHttpDnsResultForHostSyncNonBlocking API のロジックにスペックダウンします。

重要

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

getHttpDnsResultForHostSync

API 定義

HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType requestIpType)

導入バージョン

2.3.2

クラス

HttpDnsService

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

requestIpType

RequestIpType

はい

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

解決する IP アドレスタイプの列挙。有効な値:

  • v4: IPv4 アドレスに解決します。

  • v6: IPv6 アドレスに解決します。

  • both: IPv4 と IPv6 の両方のアドレスに解決します。

  • auto: SDK は、デバイスの現在のネットワークスタックに基づいてアドレスタイプを決定します。デフォルトでは、IPv4 アドレスに解決します。現在のネットワークスタックが IPv6 をサポートしている場合、SDK は IPv6 アドレスへの解決も試みます。

戻り値

タイプ

説明

HTTPDNSResult

解析結果。

サンプルコード

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);

非同期ドメイン名前解決

  • 非同期名前解決 API は現在のスレッドをブロックしません。名前解決結果はコールバックを介して返されます。

  • この API はまずキャッシュをクエリします。キャッシュに有効な名前解決結果が存在する場合、キャッシュされた結果はすぐにコールバックを介して返されます。キャッシュに有効な結果が見つからない場合、API はワーカースレッドでドメイン名前解決を実行します。名前解決が完了するか、タイムアウト期間に達した後、結果はコールバックを介して返されます。

重要

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

getHttpDnsResultForHostAsync

API 定義

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

導入バージョン

2.4.0

クラス

HttpDnsService

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

requestIpType

RequestIpType

はい

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

解決する IP アドレスタイプの列挙。有効な値:

  • v4: IPv4 アドレスに解決します。

  • v6: IPv6 アドレスに解決します。

  • both: IPv4 と IPv6 の両方のアドレスに解決します。

  • auto: SDK は、デバイスの現在のネットワークスタックに基づいてアドレスタイプを決定します。デフォルトでは、IPv4 アドレスに解決します。現在のネットワークスタックが IPv6 をサポートしている場合、SDK は IPv6 アドレスへの解決も試みます。

callback

HttpDnsCallback

はい

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

サンプルコード

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) {
                                }      
                              });

同期非ブロッキングドメイン名前解決

  • 同期非ブロッキング名前解決 API は現在のスレッドをブロックしませんが、空の結果を返すことがあります。

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

getHttpDnsResultForHostSyncNonBlocking

API 定義

HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type)

導入バージョン

2.4.0

クラス

HttpDnsService

パラメーター

パラメーター

タイプ

必須

説明

host

String

はい

解決するドメイン名。

requestIpType

RequestIpType

はい

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

解決する IP アドレスタイプの列挙。有効な値:

  • v4: IPv4 アドレスに解決します。

  • v6: IPv6 アドレスに解決します。

  • both: IPv4 と IPv6 の両方のアドレスに解決します。

  • auto: SDK は、デバイスの現在のネットワークスタックに基づいてアドレスタイプを決定します。デフォルトでは、IPv4 アドレスに解決します。現在のネットワークスタックが IPv6 をサポートしている場合、SDK は IPv6 アドレスへの解決も試みます。

戻り値

タイプ

説明

HTTPDNSResult

名前解決結果。

サンプルコード

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);

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

Alibaba Cloud DNS を使用している場合、この API を呼び出してローカルキャッシュをクリアできます。これにより、ドメイン名の構成が数秒で有効になります。 たとえば、ドメイン名 xxx.com が IP アドレス ip1 に解決されるとします。ip1 が攻撃を受けている場合、トラフィックを ip2 に移行する必要があります。プロセスは次のとおりです。

  1. Alibaba Cloud DNS コンソールで、ドメイン名の IP アドレスを ip2 に変更します。HTTPDNS サーバーはこの変更をすぐに受信し、サーバー上のドメイン名の ip1 キャッシュを消去します。

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

  3. キャッシュがクリアされた後のアプリからの次のリクエストは、サーバーが権威サーバーから最新の IP アドレス ip2 をリクエストするようトリガーします。これにより、新しい名前解決結果がクライアントで直ちに有効になります。

cleanHostCache

API 定義

void cleanHostCache(ArrayList<String> hosts)

導入バージョン

2.2.2

説明
  • この操作は、メモリキャッシュとローカルキャッシュの両方をクリアします。

クラス

HttpDnsService

パラメーター

パラメーター

タイプ

必須

説明

hosts

ArrayList<String>

はい

キャッシュをクリアしたいドメイン名の配列。すべてのデータをクリアするには、null または空の配列を渡します。