异步解析接口
使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。
解析结果返回的IP是服务端返回的IP数组中的第一个IP,不一定是最优IP。
如果您需要返回的IP是最优IP,您可以使用
启用IP优选
接口,使返回的IP为最优IP。
接口定义
String getIpByHostAsync(String host);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
代码示例
// httpdns为初始化获取的服务实例
String ip = httpdns.getIpByHostAsync("www.aliyun.com");
异步解析获取解析结果列表
异步解析接口,获取IP列表,首先查询缓存,若存在则返回结果,若不存在返回长度为0的String数组并且进行异步域名解析更新缓存。
返回的IP列表就是服务端返回的列表,在服务端的权重是一样,也就是没有优先顺序。
若接口返回长度为0的String数组,为避免影响业务请降级到Local DNS解析策略。
接口定义
String[] getIpsByHostAsync(String host);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
代码示例
// httpdns为初始化获取的服务实例
String[] ips = httpdns.getIpsByHostAsync("www.aliyun.com");
异步解析获取解析结果
异步解析接口,获取解析结果,可以指定要解析的IP类型,首先查询缓存,若存在则返回结果,若不存在返回内容为空的结果对象,并且进行异步域名解析更新缓存。
若接口返回空内容的结果对象,为避免影响业务请降级到Local DNS解析策略。
该接口也可以用于解析IPv6。
接口定义
HTTPDNSResult getIpsByHostAsync(String host, RequestIpType type);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
type | RequestIpType | 是 | 枚举类型,代表解析哪种类型的IP:
|
代码示例
// httpdns为初始化获取的服务实例
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", RequestIpType.both);
// 获取IPv4的解析结果
result.getIps();
// 获取IPv6的解析结果
result.getIpv6s();
启用IP优选
设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。
SDK 1.1.5及以上版本支持。
接口定义
void setIPProbeList(List<IPProbeItem> ipProbeList);
参数说明
参数 | 类型 | 是否必填 | 说明 |
ipProbeList | List<IPProbeItem> | 是 | 设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。 |
代码示例
// httpdns为初始化获取的服务实例
ArrayList<IPProbeItem> list = new ArrayList<IPProbeItem>();
list.add(new IPProbeItem("www.aliyun.com", 8080));
httpdns.setIPProbeList(list);
对指定域名进行探测
指定要探测的域名及探测时的端口号。
SDK V1.1.5及以上版本支持。
接口定义
public IPProbeItem(String hostname, int port)
参数说明
参数 | 类型 | 是否必填 | 说明 |
hostname | String | 是 | 域名(如www.aliyun.com) |
port | int | 是 | 端口(如8080) |
代码示例
IPProbeItem probeItem = new IPProbeItem("www.aliyun.com", 8080);