文档

自定义解析接口

更新时间:

本文档所有接口,需结合编写自定义解析函数,用于基础解析场景不满足需求时,进行自定义解析使用。

自定义解析异步解析接口

使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。自定义解析接口可上传给服务端额外参数,用于服务端做判断,返回不同解析结果。

重要

  • SDK V1.3.1及以上版本支持。

  • 该接口只解析和返回ipv4类型IP,为兼容旧版本保留接口。

接口定义

HTTPDNSResult getIpsByHostAsync(String host, Map<String,String> params, String cacheKey);
重要

2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

HTTPDNSResult getHttpDnsResultForHostAsync(String host, Map<String, String> params,
											   String cacheKey);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

params

Map<String,String>

上传的额外参数,对应服务端自定义解析函数中的event.parameters参数

cacheKey

String

域名对应的本地缓存key,传入与上次不同的key值时,不返回上次解析结果

代码示例

// httpdns为初始化获取的服务实例
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");

// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getHttpDnsResultForHostAsync方法
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", map, "测试");

//2.3.2版本开始,建议使用该接口
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com", map, "测试");

自定义解析异步解析接口-指定IP类型

使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。自定义解析接口可上传给服务端额外参数,用于服务端做判断,返回不同解析结果。

重要

此功能仅适用于SDK V2.0.0及以上版本。

接口定义

HTTPDNSResult getIpsByHostAsync(String host, RequestIpType requestIpType, Map<String,String> params, String cacheKey);
重要

2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

HTTPDNSResult getHttpDnsResultForHostAsync(String host, RequestIpType type, Map<String,
		String> params, String cacheKey);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

requestIpType

RequestIpType(enum类)

指定解析IP的类型:

  • v4:ipv4类型

  • v6:ipv6类型

  • both:两种类型都进行解析

  • auto:与当前网络环境匹配的IP类型

params

Map<String,String>

上传的额外参数,对应服务端自定义解析函数中的event.parameters参数

cacheKey

String

域名对应的缓存key,传入与上次不同的key值时,不返回上次解析结果

代码示例

// httpdns为初始化获取的服务实例
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");

// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getHttpDnsResultForHostAsync方法
HTTPDNSResult result = httpdns.getIpsByHostAsync("www.aliyun.com", RequestIpType.v4, map, "测试");

//2.3.2版本开始,建议使用该接口
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com", RequestIpType.v4, map, "测试");

异步解析接口-全部解析

使用异步解析接口,首先查询缓存,若存在则返回缓存结果,若不存在返回null并且进行异步域名解析更新缓存。该接口不上传额外参数,也无缓存key,并解析ipv4和ipv6两种类型,用于无任何条件的自定义解析。

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

接口定义

HTTPDNSResult getAllByHostAsync(String host);
重要

2.3.2版本对接口名称进行了优化,如果接入的SDK是2.3.2版本或2.3.2以后的版本,建议使用下面的新API,上面这个旧API可能会在后续版本中删除

HTTPDNSResult getHttpDnsResultForHostAsync(String host);

参数说明

参数

类型

是否必填

说明

host

String

域名(如www.aliyun.com)

代码示例

// @Deprecated 2.3.1及以下版本使用该接口,2.3.2版本开始,该接口已废弃
// 建议使用getHttpDnsResultForHostAsync方法
HTTPDNSResult result = httpdns.getAllByHostAsync("www.aliyun.com");

//2.3.2版本开始,建议使用该接口
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com");

设置自定义解析全局参数

该全局参数不影响异步解析接口的额外参数设置,会和解析接口的额外参数合并。

重要

  • 此功能仅适用于SDK V1.3.1及以上版本。

接口定义

void setSdnsGlobalParams(Map<String,String> params);

参数说明

参数

类型

是否必填

说明

params

Map<String,String>

上传的额外参数,对应服务端自定义解析函数中的event.parameters参数。

代码示例

// httpdns为初始化获取的服务实例
Map<String, String> map = new HashMap<>();
map.put("scale", "scale");
httpdns.setSdnsGlobalParams(map);

清除自定义解析全局参数

重要

  • 此功能仅适用于SDK V1.3.1及以上版本。

接口定义

void clearSdnsGlobalParams();

代码示例

// httpdns为初始化获取的服务实例
httpdns.clearSdnsGlobalParams();

HTTPDNSResult类参数说明

重要

  • 此功能仅适用于SDK V1.3.1及以上版本。

参数

类型

获取方式

说明

host

String

getHost()

解析的对应域名(如www.aliyun.com)

ips

String[]

getIps()

ipv4解析结果

ipv6s

String[]

getIpv6s()

ipv6解析结果

extra

Map<String,String>

getExtras()

服务端返回的额外参数

expired

boolean

getExpired()

当前解析结果是否过期

fromDB

boolean

getFromDB()

当前解析结果是否来自持久化缓存

代码示例

// httpdns为初始化获取的服务实例
HTTPDNSResult result = httpdns.getHttpDnsResultForHostAsync("www.aliyun.com");
String host = result.getHost();
String[] ips = result.getIps();
String[] ipv6s = result.getIpv6s();
Map<String,String> map = result.getExtras();
boolean expired = result.getExpired();
boolean fromDB = result.getFromDB();
  • 本页导读 (0)
文档反馈