异步解析获取单个IPv4地址
使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。
解析结果返回的IP是服务端返回的IP数组中的第一个IP,不一定是最优IP。
如果您需要返回的IP是最优IP,您可以使用
启用IP优选
接口,使返回的IP为最优IP。
接口定义
@Deprecated
String getIpByHostAsync(String host);
2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除
String getIPv4ForHostAsync(String host);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
代码示例
// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getIPv4ForHostAsync方法
String ip = httpdns.getIpByHostAsync("www.aliyun.com");
// 2.3.2版本开始,建议使用该接口
String ip = httpdns.getIPv4ForHostAsync("www.aliyun.com");
异步解析获取IPv4地址列表
异步解析接口,获取IPv4列表,首先查询缓存,若存在则返回结果,若不存在返回长度为0的String数组并且进行异步域名解析更新缓存。
返回的IP列表就是服务端返回的列表,在服务端的权重是一样,也就是没有优先顺序。
若接口返回长度为0的String数组,为避免影响业务请降级到Local DNS解析策略。
关于异步解析接口调用的最佳实践,请参考如何利用HTTPDNS降低DNS解析开销。
接口定义
@Deprecated
String[] getIpsByHostAsync(String host);
2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除
String[] getIPv4ListForHostAsync(String host);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
代码示例
// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getIPv4ListForHostAsync方法
String[] ips = httpdns.getIpsByHostAsync("www.aliyun.com");
// 2.3.2版本开始,建议使用该接口
String[] ips = httpdns.getIPv4ListForHostAsync("www.aliyun.com");
异步解析获取解析结果
异步解析接口,获取解析结果,可以指定要解析的IP类型,首先查询缓存,若存在则返回结果,若不存在返回内容为空的结果对象,并且进行异步域名解析更新缓存。
若接口返回空内容的结果对象,为避免影响业务请降级到Local DNS解析策略。
关于异步解析接口调用的最佳实践,请参考如何利用HTTPDNS降低DNS解析开销。
该接口也可以用于解析IPv6。
接口定义
@Deprecated
HTTPDNSResult getIpsByHostAsync(String host, RequestIpType type);
2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除
HTTPDNSResult getHttpDnsResultForHostAsync(String host, RequestIpType type);
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 域名(如www.aliyun.com) |
type | RequestIpType | 是 | 枚举类型,代表解析哪种类型的IP:
|
代码示例
// httpdns为初始化获取的服务实例
// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getHttpDnsResultForHostAsync方法
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", RequestIpType.both);
// 2.3.2版本开始,建议使用该接口
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com", RequestIpType.both);
// 获取IPv4的解析结果
result.getIps();
// 获取IPv6的解析结果
result.getIpv6s();
启用IP优选
设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。
SDK 1.1.5及以上版本支持。
接口定义
@Deprecated
void setIPProbeList(List<IPProbeItem> ipProbeList);
2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除
void setIPRankingList(List<IPRankingBean> ipRankingList);
参数说明
2.3.1及以下版本参数
参数 | 类型 | 是否必填 | 说明 |
ipProbeList | List<IPProbeItem> | 是 | 设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。 |
2.3.2及以上版本参数
参数 | 类型 | 是否必填 | 说明 |
ipRankingList | List<IPRankingBean> | 是 | 设置IP探测列表,设置该接口后,如果解析了相应的域名,则SDK会对返回的IP进行IP探测,对返回的列表进行动态排序,以保证第一个IP是可用性较好的IP。 |
代码示例
// httpdns为初始化获取的服务实例
// 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
ArrayList<IPProbeItem> list = new ArrayList<IPProbeItem>();
list.add(new IPProbeItem("www.aliyun.com", 8080));
httpdns.setIPProbeList(list);
// 2.3.2版本开始,建议使用该接口
ArrayList<IPRankingBean> list = new ArrayList<IPRankingBean>();
list.add(new IPRankingBean("www.aliyun.com", 8080));
httpdns.setIPRankingList(list);
对指定域名进行探测
指定要探测的域名及探测时的端口号。
SDK V1.1.5及以上版本支持。
接口定义
2.3.1及以下版本接口定义
public IPProbeItem(String hostname, int port)
2.3.2及以上版本接口定义
public IPRankingBean(String hostName, int port)
参数说明
参数 | 类型 | 是否必填 | 说明 |
hostname | String | 是 | 域名(如www.aliyun.com) |
port | int | 是 | 端口(如8080) |
代码示例
2.3.1及以下版本代码示例
IPProbeItem probeItem = new IPProbeItem("www.aliyun.com", 8080);
2.3.2及以下版本代码示例
IPRankingBean ipRankingBean = new IPRankingBean("www.aliyun.com", 8080);
- 本页导读 (0)