HTTPDNS本地日志接口
本地日志Log开关,上线时建议关闭。
接口定义
- (void)setLogEnabled:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 日志开关 |
设置日志输出回调
该功能仅适用于SDK V1.6.20及以上版本。
接口定义
- (void)setLogHandler:(id<HttpdnsLoggerProtocol>)logHandler;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
logHandler | id<HttpdnsLoggerProtocol> | 是 | 设置日志输出回调。 |
设置域名解析请求类型
设置HTTPDNS域名解析请求的类型,若不调用该接口,默认为HTTP请求。
HTTP请求基于底层CFNetwork实现,不受ATS限制。
接口定义
- (void)setHTTPSRequestEnabled:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下: YES:HTTPS请求 NO:HTTP请求 |
设置持久化缓存功能
持久化缓存功能旨在提升首屏加载速度,但持久化缓存会将上一次解析到的结果保存到本地持久层,App重启后,如果启动持久化缓存功能会优先从持久层解析结果,所以存在第一次使用的IP为过期IP的可能性,即TTL过期,但大多数情况下该IP依然可以正常使用。
如果业务服务器IP变化比较频繁,建议谨慎接入该功能,以免对业务造成影响。
持久化缓存仅影响第一次域名解析结果,后续解析仍会请求HTTPDNS服务器,并更新本地缓存。
开启此功能后,每次网络解析记录,会更新到本地缓存;App重启后,首先加载本地缓存到内存中。
接口定义
- (void)setCachedIPEnabled:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下: True:开启 False:关闭 |
预解析接口
预先向HTTPDNS SDK中选择性的注册您后续可能会使用到的域名,以便SDK提前解析,减少后续域名解析时请求的时延。
接口定义
- (void)setPreResolveHosts:(NSArray *)hosts;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
hosts | NSArray | 是 | 预解析域名列表 |
高级预解析
支持IPv4、IPv6组合的预解析方法。
如果需要开启IPv6预解析,则需提前打开IPv6开关。
接口定义
- (void)setPreResolveHosts:(NSArray *)hosts queryIPType:(AlicloudHttpDNS_IPType)ipType;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
hosts | NSArray | 是 | 预解析域名列表 |
ipType | AlicloudHttpDNS_IPType | 是 | 取值如下:
|
是否允许HTTPDNS返回TTL过期域名的IP
设置是否允许HTTPDNS返回TTL过期的域名,建议设置为YES(默认为NO)。
当设置为YES时,SDK在实时返回过期IP的同时,依然会进行异步更新以获取最新的IP信息。
当设置为NO时,假设已有某个域名的缓存,IP的TTL时间为60s,60s内调用getIpByHostAsync等异步解析接口可以拿到缓存结果;但是在60s之后,首次调用getIpByHostAsync等异步解析接口会直接返回null,并且进行异步域名解析更新缓存。
接口定义
- (void)setExpiredIPEnabled:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 是否返回TTL过期域名。 YES:允许 NO:不允许 |
网络切换自动刷新
设置网络切换时是否自动刷新所有域名解析结果,如果打开此开关,在网络切换时,会自动刷新所有域名的解析结果,但会产生一定流量消耗。
WiFi、蜂窝、无网这三个状态的切换算网络切换。
4G与3G切换不算网络切换。
SIM卡切换也不会单独处理。
接口定义
- (void)setPreResolveAfterNetworkChanged:(BOOL)enable;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下:
|
设置region节点
调用此接口后,会按照region更新服务IP。
该功能仅适用于SDK V1.18及以上版本。
如果调用此接口时,与上次设置的region相同或者5分钟内重复设置不同的region时,不会进行服务IP的更新。
接口定义
- (void)setRegion:(NSString *)region;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
region | NSString | 是 | region为节点,设置海外region,用于海外服务区域选择,当前仅支持hk(中国香港节点)和sg(新加坡节点),填写后返回当地的服务节点。 缺省时,使用中国香港节点。 |
清空指定域名缓存
使用阿里云域名解析服务的用户,调用该接口主动清除本地缓存,可实现秒级域名配置生效。 例如:假设域名xxx.com,解析IP地址为ip1, 当ip1遭受攻击,需要将流量迁移至ip2,实现流程如下:
首先,用户在云解析控制台将域名对应IP修改为ip2,此时在HTTPDNS服务端会立即获取到此变更信息,并清除服务端该域名的ip1缓存。
用户手动调用此接口,清空xxx.com域名的本地缓存。
App端清空缓存后的下一次请求,会使得服务端重新请求权威服务器,获取最新解析IP地址ip2,从而使前端解析结果立即生效为ip2。
该功能仅适用于SDK V2.0.4及以上版本。
清除操作会同步清除内存缓存和沙箱缓存(异步)。
接口定义
- (void)cleanHostCache:(NSArray <NSString *>*)hostArray;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
hostArray | NSArray <NSString *>* | 是 | 需要清除的host域名数组。如果需要清空全部数据,传nil或者空数组即可。 |