高階配置接口
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務造成影響,請務必仔細閱讀。
是否允許HTTPDNS打印Log
設置是否打開HTTPDNS的日志開關(guān),默認關(guān)閉。
enable
接口定義
void enable(boolean enable)
2.0.0版本新增方法。
所屬類
HttpDnsLog
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
enable | boolean | 是 | 是否打印Log到logcat。 |
代碼示例
HttpDnsLog.enable(shouldPrintLog)
HttpDnsLog.enable(shouldPrintLog);
setLogEnabled
接口定義
void setLogEnabled(boolean enable)
已經(jīng)在2.4.0版本刪除,請使用void enable(boolean enable)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
enable | boolean | 是 | 是否打印Log到logcat。 |
設置接收SDK日志的回調(diào)類
可以通過設置日志的回調(diào)類來獲取SDK內(nèi)部輸出的日志。
setLogger
添加日志回調(diào)類。
接口定義
void setLogger(ILogger logger)
2.0.0版本新增方法。
所屬類
HttpDnsLog
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
logger | 是 | 設置該接口后,SDK內(nèi)部的日志會通過ILogger接口進行回調(diào),便于自行控制日志的打印和存儲。 |
代碼示例
HttpDnsLog.setLogger { s ->
Log.d(
"HttpDnsSDK",
"resultILogger:$s"
)
}
HttpDnsLog.setLogger(new ILogger() {
@Override
public void log(String s) {
Log.d("HttpDnsSDK", "resultILogger:" + s);
}
});
setLogger
添加日志回調(diào)類。
接口定義
void setLogger(ILogger logger)
已經(jīng)在2.4.0版本刪除,請使用void setLogger(ILogger logger)
所屬類
HttpDnsService
參數(shù)定義
參數(shù) | 類型 | 是否必填 | 說明 |
logger | 是 | 設置該接口后,SDK內(nèi)部的日志會通過ILogger接口進行回調(diào),便于自行控制日志的打印和存儲。 |
removeLogger
刪除日志回調(diào)類。
接口定義
void removeLogger(ILogger logger)
2.0.0版本新增方法。
所屬類
HttpDnsLog
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
logger | 是 | 之前添加過的logger。 |
代碼示例
HttpDnsLog.removeLogger(logger)
HttpDnsLog.removeLogger(logger);
校正App簽名時間
進行該操作后,如果有偏差,每次網(wǎng)絡請求都會對設備進行時間校正;不進行該操作的話將以設備時間為準。
使用場景:有可能手機上的時間不太準確。
校正操作在App的一個生命周期內(nèi)生效,App重啟后需要重新設置才能重新生效,可以重復設置。
您需要一個時間服務,可以自建,簡單的時間戳接口就可以,請求這個時間服務返回正確的時間,然后將時間填入本接口,SDK就能知道和正確時間差了多少。
setAuthCurrentTime
接口定義
void setAuthCurrentTime(long time)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
time | long | 是 | 當前時間的時間戳 |
代碼示例
val httpdns = HttpDns.getService(applicationContext, accountID, secretKey)
httpdns?.setAuthCurrentTime(System.currentTimeMillis())
HttpDnsService httpdns = HttpDns.getService(applicationContext, accountID, secretKey);
httpdns.setAuthCurrentTime(System.currentTimeMillis());
設置region節(jié)點
如果APP需要在海外環(huán)境使用HTTPDNS,為了提升解析效率,可以主動設置本SDK的啟動服務節(jié)點。設置節(jié)點后,SDK會使用該節(jié)點進行域名解析和進行隨后的調(diào)度節(jié)點列表更新。
setRegion
初始化設置region節(jié)點。
接口定義
InitConfig.Builder setRegion(Region region)
2.4.2版本新增方法。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
region | 是 | region為節(jié)點,設置海外region,用于海外服務區(qū)域選擇。 |
setRegion
初始化設置region節(jié)點。
接口定義
InitConfig.Builder setRegion(String region)
1.3.2版本新增方法,已經(jīng)在2.4.2版本廢棄。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
region | String | 是 | region為節(jié)點,設置海外region,用于海外服務區(qū)域選擇,當前僅支持hk(中國香港節(jié)點)、sg(新加坡節(jié)點)、de(德國節(jié)點)和us(美國節(jié)點),填寫后返回當?shù)氐姆展?jié)點。 缺省時,使用中國內(nèi)地服務節(jié)點。 |
代碼示例
InitConfig.Builder()
.setRegion("hk");
new InitConfig.Builder()
.setRegion("hk");
setRegion
更新region節(jié)點。
接口定義
void setRegion(Region region)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
region | 是 | region為節(jié)點,設置海外region,用于海外服務區(qū)域選擇。 |
setRegion
更新region節(jié)點。
接口定義
void setRegion(String region)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
region | String | 是 | region為節(jié)點,設置海外region,用于海外服務區(qū)域選擇,當前僅支持hk(中國香港節(jié)點)、sg(新加坡節(jié)點)、de(德國節(jié)點)和us(美國節(jié)點),填寫后返回當?shù)氐姆展?jié)點。 缺省時,使用中國內(nèi)地服務節(jié)點。 |
自定義解析結(jié)果TTL
每條解析結(jié)果,默認是使用服務端下發(fā)的TTL來判斷是否過期。如果您需要修改解析結(jié)果的TTL,可以通過下面的接口進行配置。
configCacheTtlChanger
接口定義
InitConfig.Builder configCacheTtlChanger(CacheTtlChanger changer)
2.3.0版本新增的方法。
所屬類
InitConfig.Builder
參數(shù)定義
參數(shù) | 類型 | 是否必填 | 說明 |
changer | 是 | 自定義TTL |
代碼示例
InitConfig.Builder().configCacheTtlChanger { host, requestIpType, ttl ->
if (TextUtils.equals(host, "www.aliyun.com")) {
// 這邊以www.aliyun.com作為示例
ttl * 10
} else ttl
}
new InitConfig.Builder().configCacheTtlChanger(new CacheTtlChanger() {
@Override
public int changeCacheTtl(String host, RequestIpType requestIpType, int ttl) {
// 這邊以www.aliyun.com作為示例
if (TextUtils.equals(host, "www.aliyun.com")) {
return ttl * 10;
}
return ttl;
}
});
設置HTTPDNS的域名黑名單
如果您需要對特定域名限制不使用HTTPDNS去進行域名解析,可以在這個接口里過濾掉這些域名,被過濾的域名會返回空的解析結(jié)果,您需要降級到local dns進行域名解析。
setNotUseHttpDnsFilter
接口定義
InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)
2.4.0版本新增方法。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
filter | 是 | 配置黑名單策略 |
代碼示例
InitConfig.Builder().setNotUseHttpDnsFilter { hostName ->
TextUtils.equals(
hostName,
"www.aliyun.com"
)
}
new InitConfig.Builder().setNotUseHttpDnsFilter(new NotUseHttpDnsFilter() {
@Override
public boolean notUseHttpDns(String hostName) {
return TextUtils.equals(hostName, "www.aliyun.com");
}
});
setDegradationFilter
接口定義
InitConfig.Builder setDegradationFilter(DegradationFilter filter)
已經(jīng)在2.4.0版本廢棄,請使用InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
filter | 是 | 配置黑名單策略 |
啟用IP優(yōu)選
設置IP優(yōu)選列表,設置該接口后,如果解析了相應的域名,則SDK會對返回的IP進行IP測速,對返回的列表進行動態(tài)排序,以保證第一個IP是可用性較好的IP。
SDK 1.1.5及以上版本支持。僅支持IPv4地址的優(yōu)選。
setIPRankingList
接口定義
InitConfig.Builder setIPRankingList(List<IPRankingBean> ipRankingList)
2.3.2版本新增的方法。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
ipRankingList | List<IPRankingBean> | 是 | 設置IP優(yōu)選列表,設置該接口后,如果解析了相應的域名,則SDK會對返回的IP進行IP測速,對返回的列表進行動態(tài)排序,以保證第一個IP是可用性較好的IP。 |
代碼示例
val list = ArrayList<IPRankingBean>()
list.add(IPRankingBean("www.aliyun.com", 8080))
InitConfig.Builder().setIPRankingList(list)
ArrayList<IPRankingBean> list = new ArrayList<IPRankingBean>();
list.add(new IPRankingBean("www.aliyun.com", 8080));
new InitConfig.Builder().setIPRankingList(list);
setIPRankingList
接口定義
void setIPRankingList(List<IPRankingBean> ipRankingList)
2.4.0版本刪除了該方法。請使用InitConfig.Builder setIPRankingList(List ipRankingList)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
ipRankingList | List<IPRankingBean> | 是 | 設置IP優(yōu)選列表,設置該接口后,如果解析了相應的域名,則SDK會對返回的IP進行IP測速,對返回的列表進行動態(tài)排序,以保證第一個IP是可用性較好的IP。 |
setIPProbeList
接口定義
void setIPProbeList(List<IPRankingBean> ipProbeList)
2.4.0版本刪除了該方法。請使用InitConfig.Builder setIPRankingList(List ipRankingList)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
ipProbeList | List<IPProbeItem> | 是 | 設置IP優(yōu)選列表,設置該接口后,如果解析了相應的域名,則SDK會對返回的IP進行IP測速,對返回的列表進行動態(tài)排序,以保證第一個IP是可用性較好的IP。 |
設置自定義解析全局參數(shù)
該全局參數(shù)不影響自定義解析接口的額外參數(shù)設置,會和自定義解析接口的額外參數(shù)合并。
setSdnsGlobalParams
接口定義
InitConfig.Builder setSdnsGlobalParams(Map<String, String> params)
2.4.0版本新增方法。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
params | Map<String, String> | 是 | 用于自定義解析,全局參數(shù),每個自定義解析請求都會帶上這些全局參數(shù)。 |
代碼示例
val params: MutableMap<String, String> = HashMap()
params["level"] = "1"
InitConfig.Builder()
.setSdnsGlobalParams(params)
Map<String, String> params = new HashMap<>();
params.put("level", "1");
new InitConfig.Builder()
.setSdnsGlobalParams(params);
setSdnsGlobalParams
接口定義
void setSdnsGlobalParams(Map<String, String> params)
2.4.0版本刪除了該方法。請使用InitConfig.Builder setSdnsGlobalParams(Map params)
所屬類
HttpDnsService
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
params | Map<String, String> | 是 | 用于自定義解析,全局參數(shù),每個自定義解析請求都會攜帶這些全局參數(shù)。 |
設置允許降級Local Dns解析
開啟允許降級Local Dns解析的話,在HttpDns域名解析失敗時,SDK內(nèi)部會通過Local Dns進行域名解析并返回解析結(jié)果。默認不允許降級Local Dns解析。
setEnableDegradationLocalDns
接口定義
InitConfig.Builder setEnableDegradationLocalDns(boolean enableDegradation)
2.4.2版本新增方法,默認關(guān)閉降級Local Dns。
所屬類
InitConfig.Builder
參數(shù)說明
參數(shù) | 類型 | 是否必填 | 說明 |
enableDegradation | boolean | 是 |
|