サービスインスタンスの取得
HTTPDNS サービスインスタンスを取得できます。HTTPDNS software development kit (SDK) は複数のインスタンスをサポートしています。アカウント ID ごとに異なるインスタンスが返されます。
アカウント ID で初期化された各インスタンスは、シングルトンデザインパターンを使用します。初期化後、インスタンスはアプリのライフサイクルを通じて永続化され、再度作成されることはありません。
getService
インターフェイス定義
HttpDnsService getService(Context applicationContext, String accountID);
クラス
HttpDns
導入バージョン
1.2.3
非推奨バージョン
2.6.3
代替インターフェイス
HttpDnsService getService(String accountID)
InitConfig.Builder setContext(Context context)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
applicationContext | Context | はい | Android アプリの Context。 |
accountID | String | はい | システムによって割り当てられたアカウント ID。HTTPDNS を有効化した後、EMAS コンソールでアカウント ID を取得できます。[プロジェクト名] > [プラットフォームサービス] > [HTTPDNS] > [開発者設定] に移動します。 |
getService
インターフェイス定義
HttpDnsService getService(Context applicationContext, String accountID, String secretKey);
クラス
HttpDns
導入バージョン
1.3.2
非推奨バージョン
2.6.3
代替インターフェイス
HttpDnsService getService(String accountID)
InitConfig.Builder setContext(Context context)
InitConfig.Builder setSecretKey(String secretKey)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
applicationContext | Context | はい | Android アプリの Context。 |
accountID | String | はい | システムによって割り当てられたアカウント ID。HTTPDNS を有効化した後、EMAS コンソールでアカウント ID を取得できます。[プロジェクト名] > [プラットフォームサービス] > [HTTPDNS] > [開発者設定] に移動します。 |
secretKey | String | はい | 認証用のシークレットキー。 |
HTTPS リクエストの使用
デフォルトでは、HTTPDNS SDK は HTTP 経由でドメイン名解決リクエストを送信します。これらのリクエストを HTTPS 経由で送信するには、HTTPS プロトコルを使用するように SDK を設定する必要があります。
HTTPS リクエストを使用すると、セキュリティが向上します。HTTP リクエストと HTTPS リクエストでは課金が異なることに注意してください。課金の詳細については、「課金」をご参照ください。
setHTTPSRequestEnabled
インターフェイス定義
void setHTTPSRequestEnabled(boolean enableHttps)
クラス
HttpDnsService
導入バージョン
1.3.2
バージョンで削除
2.4.0
代替インターフェイス
InitConfig.Builder setEnableHttps(boolean enableHttps)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
enableHttps | boolean | はい | ドメイン名解決に HTTPS プロトコルを使用するかどうかを指定します。
|
期限切れ IP アドレスの使用を許可する
SDK は DNS プロトコルに従い、Time-to-Live (TTL) 値に基づいてドメイン名解決結果をキャッシュします。これにより、アプリがネットワークリクエストを開始したときに IP アドレスを取得する効率が向上します。キャッシュの有効期限が切れ、アプリが解決インターフェイスを呼び出して IP アドレスを取得すると、さまざまなシナリオが発生する可能性があります:
アプリが同期非ブロッキングインターフェイスを呼び出すと、インターフェイスは空の結果を返します。これは、キャッシュの有効期限が切れており、SDK がサーバーから新しい解決結果をすぐに取得できないために発生します。スレッドのブロッキングを避けるために、呼び出し元は Local DNS 解決へのフォールバックを処理する必要があります。
アプリが同期または非同期インターフェイスを呼び出すと、SDK は解決リクエストを送信してサーバーから新しい結果を取得します。このプロセスには時間がかかります。同期インターフェイスは、新しい結果を取得するまでスレッドをブロックします。非同期インターフェイスは、新しい結果を取得した後にのみコールバックを呼び出します。
SDK は、期限切れの IP アドレスを再利用するオプションを提供します。このオプションを true に設定すると、どちらのシナリオでもインターフェイスは期限切れの IP アドレスをすぐに返すことができます。これにより、ドメイン名解決の処理時間が短縮され、ネットワークリクエストのパフォーマンスが向上します。期限切れの IP アドレスを返した後、SDK は非同期スレッドも開始してドメイン名を解決し、新しい結果を取得します。
このオプションの副作用は最小限です。これは、プライマリサイトのドメインや静的ゲートウェイのドメインなど、解決されたドメイン名の DNS レコードが頻繁に変更されない場合に特に当てはまります。DNS レコードが変更された場合、このオプションを有効にすると、そのドメイン名のキャッシュの有効期限が切れた後の最初のリクエストにのみ影響します。これは、SDK が呼び出されて期限切れの IP アドレスを見つけると、常にすぐに解決の更新を開始するためです。
この機能はデフォルトで有効になっています。
[true] に設定すると、SDK は期限切れの IP アドレスをリアルタイムで返し、非同期更新を実行して最新の IP 情報を取得します。
setExpiredIPEnabled
インターフェイス定義
void setExpiredIPEnabled(boolean enableExpiredIp)
クラス
HttpDnsService
導入バージョン
1.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setEnableExpiredIp(boolean enableExpiredIp)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
enableExpiredIp | boolean | はい | TTL を超えた IP アドレスを返すことを許可するかどうかを指定します。
|
ローカルキャッシュの有効化
永続キャッシュ機能は、起動後のドメイン名解決にかかる時間を最適化します。これにより、最初の画面の読み込み速度が向上します。
有効にすると、HTTPDNS は最後の解決結果をローカルの永続化レイヤーに保存します。アプリの再起動後、各ドメイン名の最初の解決では、最速の解決のために永続化レイヤーからキャッシュされた結果の取得が優先されます。このため、最初に使用される IP アドレスは、キャッシュされた TTL が経過した期限切れのものである可能性があります。ただし、ほとんどの場合、この IP アドレスは引き続き使用できます。これは、DNS レコードが安定しているドメイン名に特に当てはまります。
setCachedIPEnabled
インターフェイス定義
void setCachedIPEnabled(boolean enableCacheIp)
void setCachedIPEnabled(boolean enableCacheIp, boolean cleanLocalCache)
クラス
HttpDnsService
導入バージョン
1.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setEnableCacheIp(boolean enableCacheIp)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
enableCacheIp | boolean | はい | ローカルキャッシュを有効にするかどうかを制御します。
|
cleanLocalCache | boolean | いいえ | 読み取り後にローカルキャッシュをクリアするかどうかを指定します。 このパラメーターは、永続キャッシュが有効な場合に有効になります。
デフォルト値は false です。 |
ネットワーク変更時の自動解決の有効化
デバイスのネットワークが Wi-Fi ネットワークからセルラーネットワークに切り替わるなど、変更された場合、HTTPDNS SDK は以前にキャッシュされた IP アドレスを返し続けることがあります。これにより、ネットワーク間のリクエストが発生し、リクエストのパフォーマンスと成功率に影響します。これを防ぐために、SDK はネットワーク変更イベントをリッスンし、グローバル解決キャッシュをクリアするかどうかをインテリジェントに決定します。
このインターフェイスは、ネットワークの変更によりグローバル解決キャッシュをクリアした後、SDK がすべてのドメイン名の解決結果を自動的にリフレッシュするかどうかを設定します。有効にすると、ビジネスネットワークリクエストはネットワーク切り替え直後に新しい結果を取得できます。これにより、ドメイン名解決の時間が短縮され、リクエストのパフォーマンスが向上します。
この機能を有効にすると、解決リクエストの数がわずかに増加する場合があります。この機能はデフォルトで無効になっています。
Wi-Fi、セルラーネットワーク、およびネットワークなしの間の切り替えは、ネットワークトランジションと見なされます。
4G と 3G の間の切り替えは、ネットワークトランジションとは見なされません。
SIM カードの切り替えは別途処理されません。
setPreResolveAfterNetworkChanged
インターフェイス定義
void setPreResolveAfterNetworkChanged(boolean enable)
クラス
HttpDnsService
導入バージョン
1.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setPreResolveAfterNetworkChanged(boolean enable)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
enable | boolean | はい | ネットワークが変更されたときにキャッシュ内のすべてのドメイン名を再解決するかどうかを指定します。
|
タイムアウト設定
ドメイン名解決のタイムアウト期間を設定できます。デフォルトは 2000 ms です。
setTimeout
インターフェイス定義
InitConfig.Builder setTimeout(int timeoutInterval)
クラス
InitConfig.Builder
導入バージョン
2.0.2
非推奨バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setTimeoutMillis(int timeoutInterval)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
timeoutInterval | int | はい | ドメイン名解決のタイムアウト期間をミリ秒単位で設定します。 デフォルトは 2000 ms です。最大は 5000 ms です。 |
コード例
InitConfig.Builder()
.setTimeout(2 * 1000)new InitConfig.Builder()
.setTimeout(2 * 1000);setTimeoutInterval
インターフェイス定義
void setTimeoutInterval(int timeoutInterval)
クラス
HttpDnsService
導入バージョン
1.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setTimeoutMillis(int timeoutInterval)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
timeoutInterval | int | はい | ドメイン名解決のタイムアウト期間をミリ秒単位で設定します。 デフォルトのタイムアウトは 2000 ms です。最大は 5000 ms です。 |
リージョンノードの設定
アプリが中国国外で HTTPDNS を使用する必要がある場合は、SDK の起動サービスノードを設定して解決効率を向上させることができます。ノードを設定すると、SDK はそれをドメイン名解決およびスケジューling ノードリストの後続の更新に使用します。
setRegion
初期化中にリージョンノードを設定できます。
インターフェイス定義
InitConfig.Builder setRegion(String region)
クラス
InitConfig.Builder
導入バージョン
1.3.2
非推奨バージョン
2.4.2
代替インターフェイス
InitConfig.Builder setRegion(Region region)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
region | String | はい | リージョンノード。サービスエリア選択のために中国国外のリージョンを設定します。現在、`hk` (中国 (香港) ノード)、`sg` (シンガポールノード)、`de` (ドイツノード)、および `us` (米国ノード) のみがサポートされています。リージョンを指定すると、ローカルサービスノードが返されます。 リージョンを指定しない場合、中国本土のサービスノードが使用されます。 |
コード例
InitConfig.Builder()
.setRegion("hk");new InitConfig.Builder()
.setRegion("hk");HTTPDNS ドメイン名のブラックリストの設定
特定のドメイン名が HTTPDNS によって解決されるのを防ぐには、このインターフェイスを使用してそれらをフィルターで除外できます。フィルターで除外されたドメイン名は空の解決結果を返します。解決には Local DNS にフォールバックする必要があります。
setDegradationFilter
インターフェイス定義
InitConfig.Builder setDegradationFilter(DegradationFilter filter)
クラス
InitConfig.Builder
導入バージョン
2.4.0
非推奨バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
filter | はい | ブラックリストポリシーを設定します。 |
setIPRankingList
インターフェイス定義
void setIPRankingList(List<IPRankingBean> ipRankingList)
クラス
HttpDnsService
導入バージョン
2.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setIPRankingList(List<IPRankingBean> ipRankingList)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
ipRankingList | List<IPRankingBean> | はい | IP ランキングリストを設定します。このインターフェイスを設定した後、対応するドメイン名が解決されると、SDK は返された IP アドレスをプローブします。その後、リストを動的にソートして、最初の IP アドレスの可用性が向上するようにします。 |
setIPProbeList
インターフェイス定義
void setIPProbeList(List<IPRankingBean> ipProbeList)
クラス
HttpDnsService
導入バージョン
1.3.2
非推奨バージョン
2.3.2
削除バージョン
2.3.2
代替インターフェイス
InitConfig.Builder setIPRankingList(List<IPRankingBean> ipRankingList)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
ipProbeList | List<IPProbeItem> | はい | IP ランキングリストを設定します。このインターフェイスを設定した後、対応するドメイン名が解決されると、SDK は返された IP アドレスをプローブします。その後、リストを動的にソートして、最初の IP アドレスの可用性が向上するようにします。 |
カスタム解決のためのグローバルパラメーターの設定
これらのグローバルパラメーターは、カスタム解決インターフェイスの追加パラメーター設定には影響しません。これらは、カスタム解決インターフェイスの追加パラメーターとマージされます。
setSdnsGlobalParams
インターフェイス定義
void setSdnsGlobalParams(Map<String, String> params)
クラス
HttpDnsService
導入バージョン
1.3.2
削除バージョン
2.4.0
代替インターフェイス
InitConfig.Builder setSdnsGlobalParams(Map params)
パラメーター
パラメーター | タイプ | 必須 | 説明 |
params | Map<String, String> | はい | カスタム解決のためのグローバルパラメーター。各カスタム解決リクエストは、これらのグローバルパラメーターを伴います。 |