基础配置接口

无鉴权初始化接口

若在阿里云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从本地持久化缓存中加载记录到内存缓存中时,将过期时间已经超过此duration的记录清除。

单位为秒值,默认是0秒。即,默认丢弃已经过期的记录。