3.-解析接口
更新时间:2020-09-10
3.1 解析接口的返回值类型
- 说明:使用BDHttpDnsResult类型对解析结果进行封装
-
方法:
-
int getResolveStatus();
-
说明:域名解析结果的状态码,可能取值为:
状态码取值 说明 STATUS_OK 解析成功 STATUS_ERR_CACHE_MISS 由于cache未命中导致的解析失败,仅在解析时指定cache only标志时有效 STATUS_ERR_DNS_RESOLVE dns解析失败
-
-
int getResolveType();
-
说明:域名解析结果的来源,可能取值为:
解析来源类型取值 说明 RESOLVE_NONE 没有有效的解析结果 RESOLVE_FROM_HTTPDNS_CACHE 解析结果来自httpdns cache RESOLVE_FROM_HTTPDNS_EXPIRED_CACHE 解析结果来自过期的httpdns cache RESOLVE_FROM_DNS_CACHE 解析结果来自dns cache RESOLVE_FROM_DNS 解析结果来自dns解析
-
-
ArrayList
getIpv4List(); - 说明:IPv4类型的域名解析结果列表,可能为null
-
3.2 同步域名解析接口
- 接口形式:BDHttpDnsResult syncResolve(String host, boolean cacheOnly);
-
参数:
- String host:待解析域名
-
boolean cacheOnly:是否仅使用HTTPDNS cache
- 为True时,若HTTPDNS cache未命中,则接口返回空结果,此时接口表现为同步非阻塞接口
- 为False时,若HTTPDNS cache未命中,则SDK继续进行DNS解析,此时接口表现为同步阻塞接口
-
返回值:
- 使用 BDHttpDnsResult封装的解析结果
3.3 异步域名解析接口
- 接口形式:void asyncResolve(String host, final BDHttpDns.CompletionHandler callback)
-
参数:
- String host:待解析域名
-
BDHttpDns.CompletionHandler callback:用户实现的异步回调接口,回调函数的参数为使用BDHttpDnsResult类型封装的解析结果
- 回调接口定义为:
public interface CompletionHandler {
void completionHandler(BDHttpDnsResult result);
}
-
异常:
- 如果SDK内部没有足够的线程处理异步请求,会抛出RejectedExecutionException异常