本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
是否允许HTTPDNS打印Log
设置是否打开HTTPDNS的日志开关,默认关闭。
enable
接口定义
void enable(boolean enable)
2.0.0版本新增方法。
所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | boolean | 是 | 是否打印Log到logcat。 |
代码示例
HttpDnsLog.enable(shouldPrintLog)
HttpDnsLog.enable(shouldPrintLog);
setLogEnabled
接口定义
void setLogEnabled(boolean enable)
已经在2.4.0版本删除,请使用void enable(boolean enable)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | boolean | 是 | 是否打印Log到logcat。 |
设置接收SDK日志的回调类
可以通过设置日志的回调类来获取SDK内部输出的日志。
setLogger
添加日志回调类。
接口定义
void setLogger(ILogger logger)
2.0.0版本新增方法。
所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
logger | 是 | 设置该接口后,SDK内部的日志会通过ILogger接口进行回调,便于自行控制日志的打印和存储。 |
代码示例
HttpDnsLog.setLogger { s ->
Log.d(
"HttpDnsSDK",
"resultILogger:$s"
)
}
HttpDnsLog.setLogger(new ILogger() {
@Override
public void log(String s) {
Log.d("HttpDnsSDK", "resultILogger:" + s);
}
});
setLogger
添加日志回调类。
接口定义
void setLogger(ILogger logger)
已经在2.4.0版本删除,请使用void setLogger(ILogger logger)
所属类
HttpDnsService
参数定义
参数 | 类型 | 是否必填 | 说明 |
logger | 是 | 设置该接口后,SDK内部的日志会通过ILogger接口进行回调,便于自行控制日志的打印和存储。 |
removeLogger
删除日志回调类。
接口定义
void removeLogger(ILogger logger)
2.0.0版本新增方法。
所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
logger | 是 | 之前添加过的logger。 |
代码示例
HttpDnsLog.removeLogger(logger)
HttpDnsLog.removeLogger(logger);
校正App签名时间
进行该操作后,如果有偏差,每次网络请求都会对设备进行时间校正;不进行该操作的话将以设备时间为准。
使用场景:有可能手机上的时间不太准确。
校正操作在App的一个生命周期内生效,App重启后需要重新设置才能重新生效,可以重复设置。
您需要一个时间服务,可以自建,简单的时间戳接口就可以,请求这个时间服务返回正确的时间,然后将时间填入本接口,SDK就能知道和正确时间差了多少。
setAuthCurrentTime
接口定义
void setAuthCurrentTime(long time)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
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节点
如果APP需要在海外环境使用HTTPDNS,为了提升解析效率,可以主动设置本SDK的启动服务节点。设置节点后,SDK会使用该节点进行域名解析和进行随后的调度节点列表更新。
setRegion
初始化设置region节点。
接口定义
InitConfig.Builder setRegion(Region region)
2.4.2版本新增方法。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | 是 | region为节点,设置海外region,用于海外服务区域选择。 |
setRegion
初始化设置region节点。
接口定义
InitConfig.Builder setRegion(String region)
1.3.2版本新增方法,已经在2.4.2版本废弃。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | String | 是 | region为节点,设置海外region,用于海外服务区域选择,当前仅支持hk(中国香港节点)、sg(新加坡节点)、de(德国节点)和us(美国节点),填写后返回当地的服务节点。 缺省时,使用中国内地服务节点。 |
代码示例
InitConfig.Builder()
.setRegion("hk");
new InitConfig.Builder()
.setRegion("hk");
setRegion
更新region节点。
接口定义
void setRegion(Region region)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | 是 | region为节点,设置海外region,用于海外服务区域选择。 |
setRegion
更新region节点。
接口定义
void setRegion(String region)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | String | 是 | region为节点,设置海外region,用于海外服务区域选择,当前仅支持hk(中国香港节点)、sg(新加坡节点)、de(德国节点)和us(美国节点),填写后返回当地的服务节点。 缺省时,使用中国内地服务节点。 |
自定义解析结果TTL
每条解析结果,默认是使用服务端下发的TTL来判断是否过期。如果您需要修改解析结果的TTL,可以通过下面的接口进行配置。
configCacheTtlChanger
接口定义
InitConfig.Builder configCacheTtlChanger(CacheTtlChanger changer)
2.3.0版本新增的方法。
所属类
InitConfig.Builder
参数定义
参数 | 类型 | 是否必填 | 说明 |
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去进行域名解析,可以在这个接口里过滤掉这些域名,被过滤的域名会返回空的解析结果,您需要降级到local dns进行域名解析。
setNotUseHttpDnsFilter
接口定义
InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)
2.4.0版本新增方法。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
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)
已经在2.4.0版本废弃,请使用InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
filter | 是 | 配置黑名单策略 |
启用IP优选
设置IP优选列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP测速,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。
SDK 1.1.5及以上版本支持。仅支持IPv4地址的优选。
setIPRankingList
接口定义
InitConfig.Builder setIPRankingList(List<IPRankingBean> ipRankingList)
2.3.2版本新增的方法。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
ipRankingList | List<IPRankingBean> | 是 | 设置IP优选列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP测速,对返回的列表进行动态排序,以保证第一个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
参数说明
参数 | 类型 | 是否必填 | 说明 |
ipRankingList | List<IPRankingBean> | 是 | 设置IP优选列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP测速,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。 |
setIPProbeList
接口定义
void setIPProbeList(List<IPRankingBean> ipProbeList)
2.4.0版本删除了该方法。请使用InitConfig.Builder setIPRankingList(List ipRankingList)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
ipProbeList | List<IPProbeItem> | 是 | 设置IP优选列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP测速,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。 |
设置自定义解析全局参数
该全局参数不影响自定义解析接口的额外参数设置,会和自定义解析接口的额外参数合并。
setSdnsGlobalParams
接口定义
InitConfig.Builder setSdnsGlobalParams(Map<String, String> params)
2.4.0版本新增方法。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
params | Map<String, String> | 是 | 用于自定义解析,全局参数,每个自定义解析请求都会带上这些全局参数。 |
代码示例
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
参数说明
参数 | 类型 | 是否必填 | 说明 |
params | Map<String, String> | 是 | 用于自定义解析,全局参数,每个自定义解析请求都会携带这些全局参数。 |
设置允许降级Local Dns解析
开启允许降级Local Dns解析的话,在HttpDns域名解析失败时,SDK内部会通过Local Dns进行域名解析并返回解析结果。默认不允许降级Local Dns解析。
setEnableDegradationLocalDns
接口定义
InitConfig.Builder setEnableDegradationLocalDns(boolean enableDegradation)
2.4.2版本新增方法,默认关闭降级Local Dns。
所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
enableDegradation | boolean | 是 |
|