3. 解析接口

3.1 解析接口的返回值类型

  • 说明:使用BDHttpDnsResult类型对解析结果进行封装

  • 属性:

1.@property (readonly) NSInteger status;

  • 说明:域名解析结果的状态码,可能取值为:

    状态码取值 说明
    BDHttpDnsStatusOK 解析成功
    BDHttpDnsStatusErrCacheMiss 由于cache未命中导致的解析失败,仅在解析时指定cache only标志时有效
    BDHttpDnsStatusErrDnsResolve dns解析失败

2.@property (readonly) NSInteger type;

  • 说明:域名解析结果的来源,可能取值为:

    解析来源类型取值 说明
    BDHttpDnsResolveNone 没有有效的解析结果
    BDHttpDnsResolveFromHttpDnsCache 解析结果来自httpdns cache
    BDHttpDnsResolveFromHttpDnsExpiredCache 解析结果来自过期的httpdns cache
    BDHttpDnsResolveFromDnsCache 解析结果来自dns cache
    BDHttpDnsResolveFromDns 解析结果来自dns解析

3.@property (nullable, readonly, copy) NSArray *ipv4List;

  • 说明:IPv4类型的域名解析结果列表,可能为nil

4.@property (nullable, readonly, copy) NSArray *ipv6List;

  • 说明:IPv6类型的域名解析结果列表,可能为nil

3.2 同步域名解析接口

  • 接口形式:- (BDHttpDnsResult*)syncResolve:(NSString *)host cacheOnly:(BOOL)cacheOnly;

  • 参数:

    • (NSString *)host:待解析域名

    • (BOOL)cacheOnly:是否仅使用HTTPDNS cache

      • 为True时,若HTTPDNS cache未命中,则接口返回空结果,此时接口表现为同步非阻塞接口

      • 为False时,若HTTPDNS cache未命中,则SDK继续进行DNS解析,此时接口表现为同步阻塞接口

  • 返回值:

    • 使用 BDHttpDnsResult封装的解析结果

3.3 异步域名解析接口

  • 接口形式:- (void)asyncResolve:(NSString *)host completionHandler:(void (^)(BDHttpDnsResult*))completionHandler;

  • 参数:

    • (NSString *)host:待解析域名

    • (void (^)(BDHttpDnsResult*))completionHandler:异步解析回调函数,参数为使用
      BDHttpDnsResult封装的解析结果