高阶配置接口

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

是否允许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

ILogger

设置该接口后,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

ILogger

设置该接口后,SDK内部的日志会通过ILogger接口进行回调,便于自行控制日志的打印和存储。

removeLogger

删除日志回调类。

接口定义

void removeLogger(ILogger logger)

说明

2.0.0版本新增方法。

所属类

HttpDnsLog

参数说明

参数

类型

是否必填

说明

logger

ILogger

之前添加过的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为节点,设置海外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为节点,设置海外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

CacheTtlChanger

自定义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

NotUseHttpDnsFilter

配置黑名单策略

代码示例

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)

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

filter

DegradationFilter

配置黑名单策略

启用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

  • true,开启降级Local Dns。

  • false,关闭降级Local Dns。