无鉴权初始化接口
若在阿里云HTTPDNS控制台上开通HTTPDNS服务后,开启了非鉴权接口访问权限
配置,则可以使用此接口直接构造无鉴权配置的HTTPDNS全局服务实例。初始化后,该实例将在APP生命周期内以单例形式存在,使用时直接获取即可。
接口定义
- (instancetype)initWithAccountID:(int)accountID;
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
accountId | int | 是 | 系统分配的Account ID,当您开通HTTPDNS后,您可以在控制台获取到您阿里云账号对应的Account ID信息。 |
有鉴权初始化接口
若在阿里云HTTPDNS控制台上开通HTTPDNS服务后,未开启非鉴权接口访问权限
配置,则需要使用此接口构造含鉴权配置的HTTPDNS全局服务实例。初始化后,该实例将在APP生命周期内以单例形式存在,使用时直接获取即可。
接口定义
- (instancetype)initWithAccountID:(int)accountID secretKey:(NSString *)secretKey;
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
accountId | int | 是 | 系统分配的Account ID,当您开通HTTPDNS后,您可以在控制台获取到您阿里云账号对应的Account ID信息。 |
secretKey | NSString | 是 | 鉴权对应的secretKey,同样在阿里云HTTPDNS控制台获取。 |
获取服务实例
在构造全局HTTPDNS服务实例之后,任何地方需要配置HTTPDNS或需要使用HTTPDNS解析域名时,都可以通过此接口获得全局单例。
接口定义
+ (instancetype)sharedInstance;
所属类
HttpDnsService
是否使用HTTPS请求
设置HTTPDNS域名解析使用HTTPS方式请求。若不调用该接口,默认为HTTP请求。
HTTP请求基于底层CFNetwork实现,不受ATS限制。
接口定义
- (void)setHTTPSRequestEnabled:(BOOL)enable;
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | BOOL | 是 | 取值如下: YES:HTTPS请求 NO:HTTP请求 |
是否允许使用过期IP
若考虑域名解析结果比较稳定,可以开启允许HTTPDNS返回TTL过期的解析结果,从而达成最快的域名解析效率。默认不允许。
当设置为YES时,SDK会先返回过期缓存解析结果,但也依然会同步发起异步更新以获取最新的IP信息。
当设置为NO时,假设已有某个域名的缓存,该IP信息的TTL时间为60s,则60s内调用相关解析接口可以立即拿到缓存结果。但在60s之后,由于该缓存的TTL已经过期,如果调用同步、异步解析接口,则需要等待解析网络请求完成获得最新IP信息后,才会返回或回调结果;如果调用同步非阻塞接口,则会立即返回nil,同时开启后台线程发起异步更新。
在2.x.x版本及以前,本接口定义为
- (void)setExpiredIPEnabled:(BOOL)enable
。
接口定义
- (void)setReuseExpiredIPEnabled:(BOOL)enable;
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | BOOL | 是 | 是否允许返回TTL过期的缓存解析结果。 YES:允许 NO:不允许 |
是否开启持久化本地缓存
持久化本地缓存功能旨在提升首屏加载速度。
开启后,HTTPDNS会将上一次解析到的结果保存到本地持久层,App重启后,每个域名首次解析会优先从持久层获取缓存结果,以实现最快的解析效率。也正因如此,存在第一次使用的IP为过期IP的可能性,即该缓存结果TTL已过期。但大多数情况下该IP依然可以正常使用,特别是对于解析记录比较稳定的域名。
默认不开启。
如果业务服务器IP变化比较频繁,建议谨慎接入该功能,以免对业务造成影响。
持久化缓存仅影响第一次域名解析结果,后续解析仍会请求HTTPDNS服务器,并更新本地缓存。
开启此功能后,每次网络解析记录,会更新到本地缓存;App重启后,首先加载本地缓存到内存中。
在2.x.x版本及以前,本接口定义为
- (void)setCachedIPEnabled:(BOOL)enable;
接口定义
- (void)setPersistentCacheIPEnabled:(BOOL)enable;
- (void)setPersistentCacheIPEnabled:(BOOL)enable discardRecordsHasExpiredFor:(NSTimeInterval)duration; // (从3.1.2版本起提供)
所属类
HttpDnsService
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | BOOL | 是 | 取值如下: YES:开启 NO:关闭 |
duration | NSTimeInterval | 否 | 本参数仅在开启了持久化缓存的情况下有效。此时,启动后,SDK从本地持久化缓存中加载记录到内存缓存中时,将过期时间已经超过此 单位为秒值,默认是0秒。即,默认丢弃已经过期的记录。 |