全部产品

偏好设置接口

更新时间:2020-12-16 17:23

校正App签名时间

进行该操作后,如果有偏差,每次网络请求都会对设备进行时间校正;不进行该操作的话将以设备时间为准。

注意

  • 使用场景:有可能手机上的时间不太准确。

  • 校正操作在App的一个生命周期内生效,App重启后需要重新设置才能重新生效,可以重复设置。

  • 您需要一个时间服务,可以自建,简单的时间戳接口就可以,请求这个时间服务返回正确的时间,然后将时间填入本接口,SDK就能知道和正确时间差了多少。

接口定义

void setAuthCurrentTime(long time);

参数说明

参数

类型

是否必填

说明

time

long

用于校正的时间戳。

代码示例

// httpdns为初始化获取的服务实例
httpdns.setAuthCurrentTime(System.currentTimeMillis());

是否允许HTTPDNS打印Log

接口定义

void setLogEnabled(boolean shouldPrintLog);

参数说明

参数

类型

是否必填

说明

shouldPrintLog

boolean

是否打印Log

代码示例

// httpdns为初始化获取的服务实例
httpdns.setLogEnabled(true);

设置接收SDK日志的回调类

注意

SDK V1.2.3及以上版本支持。

接口定义

void setLogger(ILogger logger);
ILogger接口如下:
public interface ILogger {
    void log(String msg);
}

参数说明

参数

类型

是否必填

说明

logger

ILogger

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

代码示例

// httpdns为初始化获取的服务实例
httpdns.setLogger(new ILogger() {
            @Override
            public void log(String s) {
                Log.d("HttpDnsSDK", "resultILogger:" + s);
            }
        });

设置是否使用HTTPS协议解析域名

设置是否通过HTTPS协议解析域名,默认通过HTTP协议解析。

接口定义

void setHTTPSRequestEnabled(boolean enabled);

参数说明

参数

类型

是否必填

说明

enable

boolean

设置是否通过HTTPS协议解析域名,默认通过HTTP协议解析。

代码示例

// httpdns为初始化获取的服务实例
httpdns.setHTTPSRequestEnabled(true);

是否允许启用持久化缓存

该功能旨在提升首屏加载速度,但持久化缓存会将上一次解析到的结果保存在本地持久层,App重启后,如果启动持久化缓存会优先从持久层加载解析结果。所以存在第一次使用的IP为过期IP(TTL过期,大多数情况下该IP依然可以正常使用)的可能性。如果业务服务器IP变化较频繁,建议谨慎接入该功能,以免对业务造成影响。另外,持久化缓存影响首次启动/网络切换后域名解析结果,后续解析仍会请求HTTPDNS服务器,并更新本地缓存。

接口定义

void setCachedIPEnabled(boolean enable);

参数说明

参数

类型

是否必填

说明

enable

boolean

  • true:启用持久化缓存

  • false:关闭持久化缓存

代码示例

// httpdns为初始化获取的服务实例
httpdns.setCachedIPEnabled(true);

设置是否允许返回TTL过期域名的IP

设置是否允许HTTPDNS返回TTL过期的域名,建议允许(默认不允许)。

说明

  • 当您允许返回TTL过期的IP时,SDK在实时返回过期IP的同时依然会进行异步更新以获取最新的IP信息。

  • 当您不允许返回TTL过期的IP时,举例说明:已有某个域名的缓存,IP的TTL时间为60s,60s内调用getIpByHostAsync等异步解析接口可以拿到缓存结果;但是在60s之后,首次调用getIpByHostAsync等异步解析接口会直接返回null并且进行异步域名解析更新缓存。

接口定义

void setExpiredIPEnabled(boolean enable);

参数说明

参数

类型

是否必填

说明

enable

boolean

是否返回TTL过期域名

代码示例

// httpdns为初始化获取的服务实例
httpdns.setExpiredIPEnabled(true);

网络切换自动刷新

设置网络切换时是否自动刷新所有域名解析结果,如果打开此开关,在网络切换时,会自动刷新所有域名的解析结果,但会产生一些流量消耗。

注意

WiFi、蜂窝、无网这三个状态的切换算网络切换;4G与3G切换不算网络切换、SIM卡切换也不会单独处理。

接口定义

void setPreResolveAfterNetworkChanged(boolean enable);

参数说明

参数

类型

是否必填

说明

enable

boolean

如果设置为true,那么网络切换时就会刷新缓存中的所有域名。

如果设置为false或不设置,那么网络切换时SDK仅仅会删除所有域名的缓存,只有当下次访问域名时,才会去重新解析。

代码示例

// httpdns为初始化获取的服务实例
httpdns.setPreResolveAfterNetworkChanged(true);

设置网络请求超时时间

设置自定义请求超时时间,默认为15s。

接口定义

void setTimeoutInterval(int timeoutInterval);

参数说明

参数

类型

是否必填

说明

timeoutInterval

int

单位是毫秒(ms)

代码示例

// httpdns为初始化获取的服务实例
httpdns.setTimeoutInterval(15 * 1000);

设置region节点

设置region节点,调用后,会按照region更新服务IP。

注意

SDK V1.3.2及以上版本支持。

接口定义

void setRegion(String region);

参数说明

参数

类型

是否必填

说明

region

String

region为节点,设置海外region,用于海外服务区域选择,当前仅支持hk(香港节点)和sg(新加坡节点),填写后返回当地的服务节点; 缺省时,使用中国大陆服务节点。

代码示例

// httpdns为初始化获取的服务实例
httpdns.setRegion("hk");