全部產品
Search
文件中心

HTTPDNS:Java SDK API

更新時間:Jan 10, 2026

本文檔詳細介紹Java SDK提供的API介面。

一、基礎配置介面

1.1 初始化配置

初始化 HTTPDNS 服務配置,在調用其他介面前必須先完成初始化。

介面定義

static void init(String accountId, InitConfig config)

所屬類

HttpDnsClient

參數說明

參數

類型

是否必填

說明

accountId

String

系統分配的 Account 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

系統分配的 Account 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 協議發起解析請求,需要配置使用 HTTPS 協議進行網域名稱解析。

使用 HTTPS 請求將會獲得更高的安全性,但也要關注 HTTP 和 HTTPS 兩種方式在計費上的不同。關於計費邏輯可參考產品計費

說明

使用 HTTPS 請求是否還需要加密:兩者工作在不同層次。HTTPS 協議保障傳輸層安全,但通過抓包方式仍可以查看參數和響應細節。AES 加密保障 HTTPDNS 業務層安全,即使抓包也無法看到明文內容。因此,可以按需求決定是否都啟用。

介面定義

InitConfig.Builder setEnableHttps(boolean enableHttps)

所屬類

InitConfig.Builder

參數說明

參數

類型

是否必填

說明

enableHttps

boolean

設定是否使用 HTTPS 協議解析網域名稱。true:開啟 HTTPS 解析;false:關閉 HTTPS 解析

setTimeoutMillis

設定網域名稱解析逾時時間,預設為 2000ms。

介面定義

InitConfig.Builder setTimeoutMillis(int timeoutMillis)

所屬類

InitConfig.Builder

參數說明

參數

類型

是否必填

說明

timeoutMillis

int

設定網域名稱解析逾時時間,時間單位為毫秒。預設 2000ms,最大 5000ms

setEnableExpiredIp

遵循 DNS 協議,按照 TTL 緩衝網域名稱解析結果,從而提升應用在發起網路請求時擷取 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 是可用性較好的 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.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 同步非阻塞解析

  • 使用同步非阻塞介面解析網域名稱,不會阻塞當前線程,但可能會返回空結果。

  • 該介面僅查詢快取,返回緩衝查詢的解析結果。若緩衝中沒有解析結果或者緩衝中的解析結果已經 TTL 到期,則會在背景工作執行緒中進行網域名稱解析,解析成功後更新緩衝,供下次調用網域名稱解析使用。

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

網域名稱對應的本機快取 key。使用 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

網域名稱對應的本機快取 key。使用 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

網域名稱對應的本機快取 key。使用 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.1 清空指定網域名稱緩衝

使用阿里雲網域名稱解析服務的使用者,調用該介面主動清除本機快取,可實現秒級網域名稱配置生效。

例如:假設網域名稱 xxx.com,解析 IP 位址為 ip1,當 ip1 遭受攻擊,需要將流量遷移至 ip2,實現流程如下:

  1. 首先,使用者在雲解析控制台將網域名稱對應 IP 修改為 ip2,此時在 HTTPDNS 服務端會立即擷取到此變更資訊,並清除服務端該網域名稱的 ip1 緩衝。

  2. 使用者手動調用此介面,清空 xxx.com網域名稱的本機快取。

  3. 應用端清空緩衝後的下一次請求,會使得服務端重新請求權威伺服器,擷取最新解析 IP 位址 ip2,從而使前端解析結果立即生效為 ip2。

cleanHostCache

介面定義

void cleanHostCache(ArrayList<String> hosts)

所屬類

HttpDnsClient

參數說明

參數

類型

是否必填

說明

hosts

ArrayList<String>

需要清除的 host 網域名稱數組。如果需要清空全部資料,傳 null 或者空數組即可

程式碼範例

// 清除指定網域名稱緩衝
ArrayList<String> hosts = new ArrayList<>();
hosts.add("www.example.com");
client.cleanHostCache(hosts);

// 清除所有緩衝
client.cleanHostCache(null);

四、排查追蹤介面

4.1 擷取 SessionId

擷取用於追蹤解析過程的 sessionId,若遇到解析異常的情況,通過釘群、工單等方式尋找支援人員協助排查時,需要提供此資訊。

說明

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

是否列印 Log

程式碼範例

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

之前添加過的 logger

程式碼範例

HttpDnsLog.removeLogger(myLogger);

五、其他介面

5.1 設定 Region

動態更新 region 節點。

setRegion

介面定義

void setRegion(Region region)

所屬類

HttpDnsClient

參數說明

參數

類型

是否必填

說明

region

Region

region 為節點,設定海外 region,用于海外服務地區選取項目

程式碼範例

client.setRegion(Region.HK);  // 切換到香港節點

5.2 校正簽章時間

進行該操作後,如果有偏差,每次網路請求都會對裝置進行時間校正;不進行該操作的話將以裝置時間為準。

setAuthCurrentTime

介面定義

void setAuthCurrentTime(long time)

所屬類

HttpDnsClient

參數說明

參數

類型

是否必填

說明

time

long

目前時間的時間戳記(毫秒)

程式碼範例

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

六、常用資料結構

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(存留時間)。

介面定義

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 Region

服務節點地區枚舉,用于海外服務地區選取項目。

枚舉值

說明

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) {
        // 自訂Tlog
        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 是可用性較好的 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);