基础配置接口

重要

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

获取服务实例

获取HTTPDNS服务实例,HTTPDNS SDK支持多实例,不同的Account ID会返回不同的实例。

普通方式

getService

接口定义

HttpDnsService getService(Context applicationContext, String accountID)

所属类

HttpDns

参数说明

参数

类型

是否必填

说明

applicationContext

Context

您的Android App Context。

accountID

String

系统分配的Account ID,当您开通HTTPDNS后,您可在EMAS控制台的概览页面获取到您对应的Account ID信息。

代码示例

val httpdns = HttpDns.getService(applicationContext, accountID)
HttpDnsService httpdns = HttpDns.getService(applicationContext, accountID);

鉴权方式

getService

接口定义

HttpDnsService getService(Context applicationContext, String accountID, String secretKey);

所属类

HttpDns

参数说明

参数

类型

是否必填

说明

applicationContext

Context

Android App的Context。

accountID

String

系统分配的Account ID,当您开通HTTPDNS后,您可在EMAS控制台的概览页面获取到您对应的Account ID信息。

secretKey

String

鉴权对应的secretKey。

代码示例

val httpdns = HttpDns.getService(applicationContext, accountID, secretKey)
HttpDnsService httpdns = HttpDns.getService(applicationContext, accountID, secretKey);

是否使用HTTPS请求

HTTPDNS SDK进行域名解析时,默认是通过HTTP协议发起解析请求,如果需要使用HTTPS协议发起解析请求,需要配置使用HTTPS协议进行域名解析。

setEnableHttps

接口定义

InitConfig.Builder setEnableHttps(boolean enableHttps)

说明

2.2.1版本新增的方法。

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

enableHttps

boolean

  • true, 开启https解析

  • false, 关闭https解析

代码示例

InitConfig.Builder()
    .setEnableHttps(true)
new InitConfig.Builder()
    .setEnableHttps(true);

setHTTPSRequestEnabled

接口定义

void setHTTPSRequestEnabled(boolean enableHttps)

警告

已经在2.4.0版本删除,请使用InitConfig.Builder setEnableHttps(boolean enableHttps)

所属类

HttpDnsService

参数说明

参数

类型

是否必填

说明

enableHttps

boolean

  • true, 开启https解析

  • false, 关闭https解析

是否允许使用过期IP

SDK在解析域名时,会把解析结果缓存在内存中,过了TTL时间,则为过期IP,我们默认允许返回过期IP,如果您期望不使用过期IP,需要配置不使用过期IP。

重要

当设置为YES时,SDK在实时返回过期IP的同时依然会进行异步更新以获取最新的IP信息。

setEnableExpiredIp

接口定义

InitConfig.Builder setEnableExpiredIp(boolean enableExpiredIp)

说明

2.2.1版本新增的方法。

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

enableExpiredIp

boolean

  • true, 允许返回过期IP

  • false, 不返回过期IP

代码示例

InitConfig.Builder()
    .setEnableExpiredIp(true)
new InitConfig.Builder()
    .setEnableExpiredIp(true);

setExpiredIPEnabled

接口定义

void setExpiredIPEnabled(boolean enableExpiredIp)

警告

已经在2.4.0版本删除,请使用InitConfig.Builder setEnableExpiredIp(boolean enableExpiredIp)

所属类

HttpDnsService

参数说明

参数

类型

是否必填

说明

enableExpiredIp

boolean

  • true, 允许返回过期IP

  • false, 不返回过期IP

是否开启本地缓存

控制是否将解析结果存储在本地缓存中,默认不开启。

当开启后,每次解析会将结果缓存到本地,当下次应用启动时,会从本地加载缓存解析结果,提高应用启动时获取解析结果的速度。

setEnableCacheIp

接口定义

InitConfig.Builder setEnableCacheIp(boolean enableCacheIp, long expiredThresholdMillis)

说明

2.4.3版本新增的方法,开启本地缓存时,支持指定清除过期一段时间后的本地缓存结果。

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

enableCacheIp

boolean

  • true, 开启本地缓存

  • false, 关闭本地缓存

expiredThresholdMillis

long

调用本接口时,SDK从本地缓存中加载记录到内存缓存中时,将过期时间已经超过此expiredThresholdMillis的本地缓存记录清除。

单位为毫秒,默认是0毫秒。即,默认丢弃已经过期的记录。最大是1年。

代码示例

InitConfig.Builder()
    .setEnableCacheIp(true, DateUtils.YEAR_IN_MILLIS)
new InitConfig.Builder()
    .setEnableCacheIp(true, DateUtils.YEAR_IN_MILLIS);

setEnableCacheIp

接口定义

InitConfig.Builder setEnableCacheIp(boolean enableCacheIp)

说明

2.2.1版本新增的方法。调用本方法,从本地持久化缓存中加载记录到内存缓存中时,会将已经过期的本地缓存记录清除。

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

enableCacheIp

boolean

  • true, 开启本地缓存

  • false, 关闭本地缓存

代码示例

InitConfig.Builder()
    .setEnableCacheIp(true)
new InitConfig.Builder()
    .setEnableCacheIp(true);

setCachedIPEnabled

接口定义

void setCachedIPEnabled(boolean enableCacheIp)

void setCachedIPEnabled(boolean enableCacheIp, boolean cleanLocalCache)

警告

已经在2.4.0版本删除,请使用InitConfig.Builder setEnableCacheIp(boolean enableCacheIp)

所属类

HttpDnsService

参数说明

参数

类型

是否必填

说明

enableCacheIp

boolean

  • true, 开启本地缓存

  • false, 关闭本地缓存

cleanLocalCache

boolean

默认是false。

启用持久化缓存时生效:

  • true,读取本地缓存之后,清除本地缓存。

  • false,读取本地缓存之后,不清除本地缓存。

是否开启网络变化自动解析

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

重要
  • WiFi、蜂窝、无网这三个状态的切换算网络切换。

  • 4G与3G切换不算网络切换。

  • SIM卡切换也不会单独处理。

setPreResolveAfterNetworkChanged

接口定义

InitConfig.Builder setPreResolveAfterNetworkChanged(boolean enable)

说明

2.4.0版本新增方法。

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

enable

boolean

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

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

代码示例

InitConfig.Builder()
    .setPreResolveAfterNetworkChanged(true)
new InitConfig.Builder()
    .setPreResolveAfterNetworkChanged(true);

setPreResolveAfterNetworkChanged

接口定义

void setPreResolveAfterNetworkChanged(boolean enable)

警告

已经在2.4.0版本删除,请使用InitConfig.Builder setPreResolveAfterNetworkChanged(boolean enable)

所属类

HttpDnsService

参数说明

参数

类型

是否必填

说明

enable

boolean

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

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

超时配置

设置域名解析超时时间,默认为2s。

setTimeoutMillis

说明

2.4.0版本新增的方法。

接口定义

InitConfig.Builder setTimeoutMillis(int timeoutInterval)

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

timeoutInterval

int

时间单位为毫秒 超时时长,默认2秒,最大5秒

代码示例

InitConfig.Builder()
    setTimeoutMillis.(2 * 1000)
new InitConfig.Builder()
    .setTimeoutMillis(2 * 1000);

setTimeout

警告

2.4.0版本废弃了该方法,请使用InitConfig.Builder setTimeoutMillis(int timeoutInterval)

接口定义

InitConfig.Builder setTimeout(int timeoutInterval)

所属类

InitConfig.Builder

参数说明

参数

类型

是否必填

说明

timeoutInterval

int

时间单位为毫秒 超时时长,默认2秒,最大5秒

代码示例

InitConfig.Builder()
    .setTimeout(2 * 1000)
new InitConfig.Builder()
    .setTimeout(2 * 1000);

setTimeoutInterval

接口定义

void setTimeoutInterval(int timeoutInterval)

警告

已经在2.4.0版本删除,请使用InitConfig.Builder setTimeoutMillis(int timeoutInterval)

所属类

HttpDnsService

参数说明

参数

类型

是否必填

说明

timeoutInterval

int

时间单位为毫秒 超时时长,默认2秒,最大5秒