全部產品
Search
文件中心

HTTPDNS:配置介面(已淘汰)

更新時間:Sep 27, 2025

擷取服務執行個體

擷取HTTPDNS服務執行個體,HTTPDNS SDK支援多執行個體,不同的Account ID會返回不同的執行個體。

每個Account ID初始化的執行個體採用單例設計模式,一旦初始化完成,該執行個體將持續存在於整個App生命週期中,不會重複建立。

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 App Context。

accountID

String

是

系統分配的Account ID,當您開通HTTPDNS後,您可在EMAS控制台 > xx專案 > 平台服務 > HTTPDNS > 開發配置頁面擷取到您對應的Account ID資訊。

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 App Context。

accountID

String

是

系統分配的Account ID,當您開通HTTPDNS後,您可在EMAS控制台 > xx專案 > 平台服務 > HTTPDNS > 開發配置頁面擷取到您對應的Account ID資訊。

secretKey

String

是

鑒權對應的secretKey。

是否使用HTTPS請求

HTTPDNS SDK進行網域名稱解析時,預設是通過HTTP協議發起解析請求,如果需要使用HTTPS協議發起解析請求,需要配置使用HTTPS協議進行網域名稱解析。

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

setHTTPSRequestEnabled

介面定義

void setHTTPSRequestEnabled(boolean enableHttps)

所屬類

HttpDnsService

引入版本

1.3.2

移除版本

2.4.0

替代介面

InitConfig.Builder setEnableHttps(boolean enableHttps)

參數說明

參數

類型

是否必填

說明

enableHttps

boolean

是

設定是否使用https協議解析網域名稱。

  • true, 開啟https解析

  • false, 關閉https解析

是否允許使用到期IP

遵循DNS協議,按照TTL緩衝網域名稱解析結果,從而提升App在發起網路請求時擷取IP的效率。當緩衝到期後,若App調用解析介面擷取IP,此時會有不同情況:

  1. 如果App調用的是同步非阻塞介面,因為緩衝已到期,但SDK又無法立即從服務端獲得新的解析結果,為了不阻塞線程,該介面將返回空結果,需要調用方做降級到LocalDNS解析的處理。

  2. 如果App調用的是同步介面或非同步介面,則SDK會發起解析請求從服務端擷取新的解析,這個過程需要一定時間,則同步介面會阻塞線程直到獲得新的解析結果,非同步介面將在獲得新的解析結果後才回調。

SDK提供設定選項,允許複用到期IP,設定為true後,則上述兩種情況,雖然緩衝的IP到期了,但介面仍然可以立即返回這個到期的IP,從而減少DNS環節處理時間,提升網路請求效能。同時,SDK發現該IP到期,返回後,也會立即啟動非同步線程對這個網域名稱進行解析,從而擷取新的解析結果。

因此,開啟這個選項的副作用非常小,特別是在,所解析網域名稱本身的解析配置不會頻繁變動時(如主站網域名稱、靜態網關網域名稱等)。若網域名稱確實發生解析變更,則開啟該選項也只會影響該網域名稱緩衝到期後的第一個請求,因為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。

  • true, 允許返回到期IP

  • false, 不返回到期IP

是否開啟本機快取

持久化緩衝功能旨在最佳化啟動後的網域名稱解析環節耗時,進而提升首屏載入速度。

開啟後,HTTPDNS會將上一次解析到的結果儲存到本地持久層,App重啟後,每個網域名稱首次解析會優先從持久層擷取緩衝結果,以實現最快的解析效率。也正因如此,存在第一次使用的IP為到期IP的可能性,即該緩衝結果TTL已到期。但大多數情況下該IP依然可以正常使用,特別是對於解析記錄比較穩定的網域名稱。

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

是

控制是否啟用本機快取。

  • true, 開啟本機快取

  • false, 關閉本機快取

cleanLocalCache

boolean

否

設定讀取本機快取之後,是否清除本機快取。

啟用持久化緩衝時生效。

  • true,讀取本機快取之後,清除本機快取

  • false,讀取本機快取之後,不清除本機快取

預設是false。

是否開啟網路變化自動解析

當裝置網路變化時(如從WIFI網路切換到蜂窩網路,或從移動網路切換到聯通網路),若HTTPDNS SDK繼續返回之前緩衝的解析IP,則可能導致業務網路請求發生跨網情況,影響請求效能和成功率。因此,SDK內部會監聽網路變化事件,智能決定是否清理全域解析緩衝。

此介面用於設定網路環境變化,SDK清理全域解析緩衝後,是否自動重新整理所有網域名稱的解析結果,若開啟,則保證切換網路後,業務網路請求也能立即拿到新的結果,降低網域名稱解析環節耗時,進而提升請求效能。

開啟此功能可能會輕微增加解析次數消耗。預設不開啟。

重要
  • WiFi、蜂窩、無網這三個狀態的切換算網路切換。

  • 4G與3G切換不算網路切換。

  • SIM卡切換也不會單獨處理。

setPreResolveAfterNetworkChanged

介面定義

void setPreResolveAfterNetworkChanged(boolean enable)

所屬類

HttpDnsService

引入版本

1.3.2

移除版本

2.4.0

替代介面

InitConfig.Builder setPreResolveAfterNetworkChanged(boolean enable)

參數說明

參數

類型

是否必填

說明

enable

boolean

是

設定是否在網路切換時,重新解析緩衝中的所有網域名稱。

  • 如果設定為true,那麼網路切換時就會重新解析並重新整理緩衝中的所有網域名稱

  • 如果設定為false或不設定,那麼網路切換時SDK僅僅會刪除所有網域名稱的緩衝,只有當下次訪問網域名稱時,才會去重新解析

逾時配置

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

setTimeout

介面定義

InitConfig.Builder setTimeout(int timeoutInterval)

所屬類

InitConfig.Builder

引入版本

2.0.2

廢棄版本

2.4.0

替代介面

InitConfig.Builder setTimeoutMillis(int timeoutInterval)

參數說明

參數

類型

是否必填

說明

timeoutInterval

int

是

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

程式碼範例

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

是

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

設定region節點

如果APP需要在海外環境使用HTTPDNS,為了提升解析效率,可以主動設定本SDK的啟動服務節點。設定節點後,SDK會使用該節點進行網域名稱解析和進行隨後的調度節點列表更新。

setRegion

初始化設定region節點。

介面定義

InitConfig.Builder setRegion(String region)

所屬類

InitConfig.Builder

引入版本

1.3.2

廢棄版本

2.4.2

替代介面

InitConfig.Builder setRegion(Region region)

參數說明

參數

類型

是否必填

說明

region

String

是

region為節點,設定海外region,用于海外服務地區選取項目,當前僅支援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測速,對返回的列表進行動態排序,以保證第一個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測速,對返回的列表進行動態排序,以保證第一個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>

是

用於自訂解析,全域參數,每個自訂解析請求都會攜帶這些全域參數。