文档

域名解析接口

同步非阻塞解析域名接口

使用同步非阻塞接口解析域名,不会阻塞当前线程,但可能会返回空结果。

该接口仅查询缓存,返回缓存查询的解析结果。若缓存中没有解析结果或者缓存中的解析结果已经TTL过期,则会在工作线程中进行域名解析,解析成功后更新缓存,供下次调用域名解析使用。

本接口提供了常规版本、使用软件自定义解析的版本。

接口定义

- (HttpdnsResult *)resolveHostSyncNonBlocking:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType;

- (HttpdnsResult *)resolveHostSyncNonBlocking:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType withSdnsParams:(NSDictionary<NSString *, NSString *> *)sdnsParams sdnsCacheKey:(NSString *)cacheKey;

说明

3.0.0版本新增方法。

所属类

HttpDnsService

参数定义

参数

类型

是否必填

说明

host

NSString

待解析域名。

queryIpType

HttpdnsQueryIPType

待解析的IP类型。使用HttpdnsQueryIPType

枚举类型,代表解析哪种类型的IP:

  • v4:需要解析的类型为IPv4。

  • v6:需要解析的类型为IPv6。

  • both:需要解析的类型为IPv4和IPv6。

  • auto:SDK内部根据设备当前的网络栈情况判断,如果仅支持IPv4,则解析IPv4类型地址;如果仅支持IPv6,则解析IPv6类型地址;如果都支持,则同时尝试解析IPv4和IPv6类型的地址。

sdnsParams

NSDictionary<NSString *, NSString *>

软件自定义解析参数

cacheKey

NSString

软件自定义解析自定义缓存key

返回说明

类型

说明

HttpdnsResult

解析结果。

同步解析域名接口

使用同步解析接口解析域名,会阻塞当前线程,直到获得有效解析结果并返回。

该接口首先查询缓存,若缓存存在可用的解析结果则立即返回缓存解析结果,若缓存中没有可用的解析结果,则会阻塞当前调用解析的线程并且在工作线程中进行域名解析,等域名解析完成返回解析结果,或达到超时时间返回空值。

本接口提供了常规版本、使用软件自定义解析的版本。

说明

为了防止在主线程中误用本接口导致APP卡顿,本接口会做检测,若发现调用线程是主线程,则自动降级到resolveHostSyncNonBlocking接口的实现逻辑。

接口定义

- (HttpdnsResult *)resolveHostSync:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType;

- (HttpdnsResult *)resolveHostSync:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType withSdnsParams:(NSDictionary<NSString *, NSString *> *)sdnsParams sdnsCacheKey:(NSString *)cacheKey;

说明

3.0.0版本新增方法。

所属类

HttpDnsService

参数定义

参数

类型

是否必填

说明

host

NSString

待解析域名。

queryIpType

HttpdnsQueryIPType

待解析的IP类型。使用HttpdnsQueryIPType

枚举类型,代表解析哪种类型的IP:

  • v4:需要解析的类型为IPv4。

  • v6:需要解析的类型为IPv6。

  • both:需要解析的类型为IPv4和IPv6。

  • auto:SDK内部根据设备当前的网络栈情况判断,如果仅支持IPv4,则解析IPv4类型地址;如果仅支持IPv6,则解析IPv6类型地址;如果都支持,则同时尝试解析IPv4和IPv6类型的地址。

sdnsParams

NSDictionary<NSString *, NSString *>

软件自定义解析参数

cacheKey

NSString

软件自定义解析自定义缓存key

返回说明

类型

说明

HttpdnsResult

解析结果。

异步解析域名接口

使用异步解析接口解析域名,不会阻塞当前线程,解析结果会通过回调的形式返回。

该接口首先查询缓存,若缓存存在可用的解析结果则立即通过回调返回缓存解析结果,若缓存中没有可用的解析结果,则会在工作线程中进行域名解析,等域名解析结束或者达到超时时间再通过回调返回解析结果。

本接口提供了常规版本、使用软件自定义解析的版本。

接口定义

- (void)resolveHostAsync:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType completionHandler:(void (^)(HttpdnsResult *))handler;

- (void)resolveHostAsync:(NSString *)host byIpType:(HttpdnsQueryIPType)queryIpType withSdnsParams:(NSDictionary<NSString *, NSString *> *)sdnsParams sdnsCacheKey:(NSString *)cacheKey completionHandler:(void (^)(HttpdnsResult *))handler;

说明

3.0.0版本新增方法。

所属类

HttpDnsService

参数定义

参数

类型

是否必填

说明

host

NSString

待解析域名。

queryIpType

HttpdnsQueryIPType

待解析的IP类型。使用HttpdnsQueryIPType

枚举类型,代表解析哪种类型的IP:

  • v4:需要解析的类型为IPv4。

  • v6:需要解析的类型为IPv6。

  • both:需要解析的类型为IPv4和IPv6。

  • auto:SDK内部根据设备当前的网络栈情况判断,如果仅支持IPv4,则解析IPv4类型地址;如果仅支持IPv6,则解析IPv6类型地址;如果都支持,则同时尝试解析IPv4和IPv6类型的地址。

handler

(void (^)(HttpdnsResult *))

解析结果回调。

sdnsParams

NSDictionary<NSString *, NSString *>

软件自定义解析参数

cacheKey

NSString

软件自定义解析自定义缓存key

回调结果说明

类型

说明

HttpdnsResult

解析结果。

清空指定域名缓存

使用阿里云域名解析服务的用户,调用该接口主动清除本地缓存,可实现秒级域名配置生效。 例如:假设域名xxx.com,解析IP地址为ip1, 当ip1遭受攻击,需要将流量迁移至ip2,实现流程如下:

  1. 首先,用户在云解析控制台将域名对应IP修改为ip2,此时在HTTPDNS服务端会立即获取到此变更信息,并清除服务端该域名的ip1缓存。

  2. 用户手动调用此接口,清空xxx.com域名的本地缓存。

  3. App端清空缓存后的下一次请求,会使得服务端重新请求权威服务器,获取最新解析IP地址ip2,从而使前端解析结果立即生效为ip2。

重要
  • 该功能仅适用于SDK V2.0.4及以上版本。

  • 清除操作会同步清除内存缓存和沙箱缓存(异步)。

接口定义

- (void)cleanHostCache:(NSArray <NSString *>*)hostArray;

参数说明

参数

类型

是否必填

说明

hostArray

NSArray <NSString *>*

需要清除的host域名数组。如果需要清空全部数据,传nil或者空数组即可。

  • 本页导读 (0)