全部產品
Search
文件中心

HTTPDNS:自訂解析介面

更新時間:Jul 13, 2024

本文檔所有介面,需結合編寫自訂解析函數,用於基礎解析情境不滿足需求時,進行自訂解析使用。

自訂解析非同步解析介面

使用非同步解析介面,首先查詢快取,若存在則返回緩衝結果,若不存在返回null並且進行非同步網域名稱解析更新緩衝。自訂解析介面可上傳給服務端額外參數,用於服務端做判斷,返回不同解析結果。

重要

  • SDK V1.3.1及以上版本支援。

  • 該介面只解析和返回ipv4類型IP,為相容舊版本保留介面。

介面定義

HTTPDNSResult getIpsByHostAsync(String host, Map<String,String> params, String cacheKey);

參數說明

參數

類型

是否必填

說明

host

String

網域名稱(如www.aliyun.com)

params

Map<String,String>

上傳的額外參數,對應服務端自訂解析函數中的event.parameters參數

cacheKey

String

網域名稱對應的本機快取key,傳入與上次不同的key值時,不返回上次解析結果

程式碼範例

// httpdns為初始化擷取的服務執行個體
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", map, "測試");

自訂解析非同步解析介面-指定IP類型

使用非同步解析介面,首先查詢快取,若存在則返回緩衝結果,若不存在返回null並且進行非同步網域名稱解析更新緩衝。自訂解析介面可上傳給服務端額外參數,用於服務端做判斷,返回不同解析結果。

重要

此功能僅適用於SDK V2.0.0及以上版本。

介面定義

HTTPDNSResult getIpsByHostAsync(String host, RequestIpType requestIpType, Map<String,String> params, String cacheKey);

參數說明

參數

類型

是否必填

說明

host

String

網域名稱(如www.aliyun.com)

requestIpType

RequestIpType(enum類)

指定解析IP的類型:

  • v4:ipv4類型

  • v6:ipv6類型

  • both:兩種類型都進行解析

  • auto:與當前網路環境匹配的IP類型

params

Map<String,String>

上傳的額外參數,對應服務端自訂解析函數中的event.parameters參數

cacheKey

String

網域名稱對應的緩衝key,傳入與上次不同的key值時,不返回上次解析結果

程式碼範例

// httpdns為初始化擷取的服務執行個體
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", RequestIpType.v4, map, "測試");

非同步解析介面-全部解析

使用非同步解析介面,首先查詢快取,若存在則返回緩衝結果,若不存在返回null並且進行非同步網域名稱解析更新緩衝。該介面不上傳額外參數,也無緩衝key,並解析ipv4和ipv6兩種類型,用於無任何條件的自訂解析。

重要

  • 此功能僅適用於SDK V2.0.0及以上版本。

介面定義

HTTPDNSResult getAllByHostAsync(String host);

參數說明

參數

類型

是否必填

說明

host

String

網域名稱(如www.aliyun.com)

程式碼範例

// httpdns為初始化擷取的服務執行個體
HTTPDNSResult result = httpdns.getAllByHostAsync("www.aliyun.com");

設定自訂解析全域參數

該全域參數不影響非同步解析介面的額外參數設定,會和解析介面的額外參數合并。

重要

  • 此功能僅適用於SDK V1.3.1及以上版本。

介面定義

void setSdnsGlobalParams(Map<String,String> params);

參數說明

參數

類型

是否必填

說明

params

Map<String,String>

上傳的額外參數,對應服務端自訂解析函數中的event.parameters參數。

程式碼範例

// httpdns為初始化擷取的服務執行個體
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");
httpdns.setSdnsGlobalParams(map);

清除自訂解析全域參數

重要

  • 此功能僅適用於SDK V1.3.1及以上版本。

介面定義

void clearSdnsGlobalParams();

程式碼範例

// httpdns為初始化擷取的服務執行個體
httpdns.clearSdnsGlobalParams();

HTTPDNSResult類參數說明

重要

  • 此功能僅適用於SDK V1.3.1及以上版本。

參數

類型

擷取方式

說明

host

String

getHost()

解析的對應網域名稱(如www.aliyun.com)

ips

String[]

getIps()

ipv4解析結果

ipv6s

String[]

getIpv6s()

ipv6解析結果

extra

Map<String,String>

getExtras()

服務端返回的額外參數

expired

boolean

getExpired()

當前解析結果是否到期

fromDB

boolean

getFromDB()

當前解析結果是否來自持久化緩衝

程式碼範例

// httpdns為初始化擷取的服務執行個體
HTTPDNSResult result = httpdns.getAllByHostAsync("www.aliyun.com");
String host = result.getHost();
String[] ips = result.getIps();
String[] ipv6s = result.getIpv6s();
Map<String,String> map = result.getExtras();
boolean expired = result.getExpired();
boolean fromDB = result.getFromDB();