本文档详细介绍Java SDK提供的API接口。
一、基础配置接口
1.1 初始化配置
初始化 HTTPDNS 服务配置,在调用其他接口前必须先完成初始化。
接口定义
static void init(String accountId, InitConfig config)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
accountId | String | 是 | 系统分配的 Account ID,可在 EMAS 控制台获取 |
config | InitConfig | 是 | 初始化配置对象 |
代码示例
InitConfig config = new InitConfig.Builder()
.setSecretKey("your-secret-key")
.setEnableHttps(true)
.setTimeoutMillis(2000)
.setEnableExpiredIp(true)
.build();
HttpDnsClient.init("your-account-id", config);1.2 获取服务实例
获取 HTTPDNS 客户端实例,用于后续的域名解析操作。
接口定义
static HttpDnsClient getClient(String accountId)
static HttpDnsClient getClient(String accountId, String secretKey)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
accountId | String | 是 | 系统分配的 Account ID |
secretKey | String | 否 | 鉴权密钥 |
返回说明
类型 | 说明 |
HttpDnsClient | HTTPDNS 客户端实例 |
代码示例
HttpDnsClient client = HttpDnsClient.getClient("your-account-id");1.3 InitConfig 配置项
通过 InitConfig.Builder 构建初始化配置。
setSecretKey
设置 HTTPDNS 解析过程中加签时使用的密钥。
设置密钥后,SDK 内部向服务端发起请求时,会对请求进行签名,帮助 HTTPDNS 服务端对解析请求进行身份认证和防篡改,进而提升 SDK 与服务端的交互安全性。
接口定义
InitConfig.Builder setSecretKey(String secretKey)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
secretKey | String | 是 | 加签密钥 |
setAesSecretKey
设置 HTTPDNS 解析过程中加密时使用的密钥。
设置加密密钥后,SDK 内部向服务端发起请求时,请求参数和响应结果将会使用 AES 算法进行加密。使用加密能力可以获得更高的安全性,但在计费逻辑上也存在差异。关于计费逻辑可参考产品计费。
接口定义
InitConfig.Builder setAesSecretKey(String aesSecretKey)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
aesSecretKey | String | 是 | 加密密钥 |
setEnableHttps
HTTPDNS SDK 进行域名解析时,默认是通过 HTTP 协议发起解析请求,如果需要使用 HTTPS 协议发起解析请求,需要配置使用 HTTPS 协议进行域名解析。
使用 HTTPS 请求将会获得更高的安全性,但也要关注 HTTP 和 HTTPS 两种方式在计费上的不同。关于计费逻辑可参考产品计费。
使用 HTTPS 请求是否还需要加密:两者工作在不同层次。HTTPS 协议保障传输层安全,但通过抓包方式仍可以查看参数和响应细节。AES 加密保障 HTTPDNS 业务层安全,即使抓包也无法看到明文内容。因此,可以按需求决定是否都启用。
接口定义
InitConfig.Builder setEnableHttps(boolean enableHttps)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
enableHttps | boolean | 是 | 设置是否使用 HTTPS 协议解析域名。true:开启 HTTPS 解析;false:关闭 HTTPS 解析 |
setTimeoutMillis
设置域名解析超时时间,默认为 2000ms。
接口定义
InitConfig.Builder setTimeoutMillis(int timeoutMillis)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
timeoutMillis | int | 是 | 设置域名解析超时时间,时间单位为毫秒。默认 2000ms,最大 5000ms |
setEnableExpiredIp
遵循 DNS 协议,按照 TTL 缓存域名解析结果,从而提升应用在发起网络请求时获取 IP 的效率。当缓存过期后,若应用调用解析接口获取 IP,此时会有不同情况:
如果应用调用的是同步非阻塞接口,因为缓存已过期,但 SDK 又无法立即从服务端获得新的解析结果,为了不阻塞线程,该接口将返回空结果,需要调用方做降级到 LocalDNS 解析的处理。
如果应用调用的是同步接口或异步接口,则 SDK 会发起解析请求从服务端获取新的解析,这个过程需要一定时间,则同步接口会阻塞线程直到获得新的解析结果,异步接口将在获得新的解析结果后才回调。
SDK 提供设置选项,允许复用过期 IP,设置为 true 后,则上述两种情况,虽然缓存的 IP 过期了,但接口仍然可以立即返回这个过期的 IP,从而减少 DNS 环节处理时间,提升网络请求性能。同时,SDK 发现该 IP 过期,返回后,也会立即启动异步线程对这个域名进行解析,从而获取新的解析结果。
因此,开启这个选项的副作用非常小,特别是在所解析域名本身的解析配置不会频繁变动时(如主站域名、静态网关域名等)。若域名确实发生解析变更,则开启该选项也只会影响该域名缓存过期后的第一个请求,因为 SDK 在被调用时发现 IP 过期,总是会立即发起对这个域名的解析更新。
默认允许。
当设置为 true 时,SDK 在实时返回过期 IP 的同时依然会进行异步更新以获取最新的 IP 信息。
接口定义
InitConfig.Builder setEnableExpiredIp(boolean enableExpiredIp)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
enableExpiredIp | boolean | 是 | 设置是否允许返回超过 TTL 的 IP。true:允许返回过期 IP;false:不返回过期 IP |
enableMemoryCache
设置是否启用内存缓存。
接口定义
InitConfig.Builder enableMemoryCache(boolean enable)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | boolean | 是 | true:启用内存缓存(默认);false:禁用内存缓存 |
setRegion
如果应用需要在海外环境使用 HTTPDNS,为了提升解析效率,可以主动设置本 SDK 的启动服务节点。设置节点后,SDK 会使用该节点进行域名解析和进行随后的调度节点列表更新。
接口定义
InitConfig.Builder setRegion(Region region)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | Region | 是 | 服务节点区域枚举值,用于海外服务区域选择。缺省时,使用中国内地服务节点 |
setIPRankingList
设置 IP 优选列表。设置该接口后,如果解析了相应的域名,则 SDK 会对返回的 IP 进行 IP 测速,对返回的列表进行动态排序,以保证第一个 IP 是可用性较好的 IP。
仅支持 IPv4 地址的优选。
接口定义
InitConfig.Builder setIPRankingList(List<? extends IPRankingBean> ipRankingList)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
ipRankingList | List<IPRankingBean> | 是 | IP 优选配置列表 |
configCacheTtlChanger
每条解析结果,默认是使用服务端下发的 TTL 来判断是否过期。如果您需要修改解析结果的 TTL,可以通过此接口进行配置。
接口定义
InitConfig.Builder configCacheTtlChanger(CacheTtlChanger changer)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
changer | CacheTtlChanger | 是 | 自定义 TTL 接口实现 |
setNotUseHttpDnsFilter
如果您需要对特定域名限制不使用 HTTPDNS 去进行域名解析,可以在这个接口里过滤掉这些域名,被过滤的域名会返回空的解析结果,您需要降级到 LocalDNS 进行域名解析。
接口定义
InitConfig.Builder setNotUseHttpDnsFilter(NotUseHttpDnsFilter filter)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
filter | NotUseHttpDnsFilter | 是 | 配置黑名单策略 |
setSdnsGlobalParams
设置自定义解析(SDNS)全局参数。该全局参数不影响自定义解析接口的额外参数设置,会和自定义解析接口的额外参数合并,每个自定义解析请求都会携带这些全局参数。
接口定义
InitConfig.Builder setSdnsGlobalParams(Map<String, String> params)所属类
InitConfig.Builder
参数说明
参数 | 类型 | 是否必填 | 说明 |
params | Map<String, String> | 是 | 用于自定义解析的全局参数 |
二、域名解析接口
2.1 设置预解析域名
在应用启动,完成 SDK 初始化后,可以立即调用此接口,设置您后续可能会使用到的热点域名,以便 SDK 提前解析,减少后续域名解析时请求的时延。
如果是在运行过程中调用,SDK 也会立即解析设置的域名列表中的域名,从而刷新这些域名的解析结果,记录到缓存中。相当于强制做一次更新。通常用于某些业务动作发生之后,希望刷新当前的域名解析,强制域名重新调度。
基于解析效率和响应速度的平衡考量,SDK 每次向服务端提交的批量解析任务限制为 5 个域名。因此当预解析列表的域名个数超过 5 个时,SDK 会自动分批提交解析。
setPreResolveHosts
接口定义
void setPreResolveHosts(List<String> hostList)
void setPreResolveHosts(List<String> hostList, RequestIpType requestIpType)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
hostList | List<String> | 是 | 预解析域名列表。待解析的域名必须为纯域名字符串,不可包含协议头(如 http://)、路径或者端口,否则可能导致解析异常。不支持泛域名 |
requestIpType | RequestIpType | 否 | 预解析的 IP 类型。如果没有此参数则默认为 RequestIpType.v4 |
代码示例
List<String> hosts = Arrays.asList("www.example.com", "api.example.com");
client.setPreResolveHosts(hosts, RequestIpType.both);2.2 同步非阻塞解析
使用同步非阻塞接口解析域名,不会阻塞当前线程,但可能会返回空结果。
该接口仅查询缓存,返回缓存查询的解析结果。若缓存中没有解析结果或者缓存中的解析结果已经 TTL 过期,则会在工作线程中进行域名解析,解析成功后更新缓存,供下次调用域名解析使用。
getHttpDnsResultForHostSyncNonBlocking
接口定义
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, String clientIp)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, Map<String, String> params, String cacheKey)
HTTPDNSResult getHttpDnsResultForHostSyncNonBlocking(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 待解析域名 |
type | RequestIpType | 是 | 待解析的 IP 类型。推荐使用 RequestIpType.both |
clientIp | String | 否 | 客户端 IP,用于服务端场景指定实际客户端 IP 以获取更精准的解析结果 |
params | Map<String, String> | 否 | 解析域名携带的额外参数,对应服务端自定义解析函数中的 event.parameters 参数 |
cacheKey | String | 否 | 域名对应的本地缓存 key。使用 SDNS 时必须传入非 null 值,如果额外参数变更导致需要重新去服务端解析,则需要变更 cacheKey |
返回说明
类型 | 说明 |
HTTPDNSResult | 解析结果 |
代码示例
HTTPDNSResult result = client.getHttpDnsResultForHostSyncNonBlocking(
"www.example.com",
RequestIpType.both
);
if (result != null && result.getIps() != null && result.getIps().length > 0) {
String ip = result.getIps()[0];
}2.3 同步解析
使用同步解析接口解析域名,会阻塞当前线程,直到获得有效解析结果并返回。
该接口首先查询缓存,若缓存存在可用的解析结果则立即返回缓存解析结果,若缓存中没有可用的解析结果,则会阻塞当前调用解析的线程并且在工作线程中进行域名解析,等域名解析完成返回解析结果,或达到超时时间返回空值。
同步解析接口,整体的耗时受超时配置控制,如果在超时配置内还没有解析成功,会立即返回空解析结果。
getHttpDnsResultForHostSync
接口定义
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, String clientIp)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, Map<String, String> params, String cacheKey)
HTTPDNSResult getHttpDnsResultForHostSync(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 待解析域名 |
type | RequestIpType | 是 | 待解析的 IP 类型。推荐使用 RequestIpType.both |
clientIp | String | 否 | 客户端 IP,用于服务端场景指定实际客户端 IP |
params | Map<String, String> | 否 | 解析域名携带的额外参数,对应服务端自定义解析函数中的 event.parameters 参数 |
cacheKey | String | 否 | 域名对应的本地缓存 key。使用 SDNS 时必须传入非 null 值,如果额外参数变更导致需要重新去服务端解析,则需要变更 cacheKey |
返回说明
类型 | 说明 |
HTTPDNSResult | 解析结果 |
代码示例
HTTPDNSResult result = client.getHttpDnsResultForHostSync(
"www.aliyun.com",
RequestIpType.both
);2.4 异步解析
使用异步解析接口解析域名,不会阻塞当前线程,解析结果会通过回调的形式返回。
该接口首先查询缓存,若缓存存在可用的解析结果则立即通过回调返回缓存解析结果,若缓存中没有可用的解析结果,则会在工作线程中进行域名解析,等域名解析结束或者达到超时时间再通过回调返回解析结果。
异步解析接口,整体的耗时受超时配置控制,如果在超时配置内还没有解析成功,会立即通过回调返回空解析结果。
getHttpDnsResultForHostAsync
接口定义
void getHttpDnsResultForHostAsync(String host, RequestIpType type, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, String clientIp, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, Map<String, String> params, String cacheKey, HttpDnsCallback callback)
void getHttpDnsResultForHostAsync(String host, RequestIpType type, Map<String, String> params, String cacheKey, String clientIp, HttpDnsCallback callback)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
host | String | 是 | 待解析域名 |
type | RequestIpType | 是 | 待解析的 IP 类型。推荐使用 RequestIpType.both |
callback | HttpDnsCallback | 是 | 域名解析结果回调接口 |
clientIp | String | 否 | 客户端 IP,用于服务端场景 |
params | Map<String, String> | 否 | 解析域名携带的额外参数,对应服务端自定义解析函数中的 event.parameters 参数 |
cacheKey | String | 否 | 域名对应的本地缓存 key。使用 SDNS 时必须传入非 null 值,如果额外参数变更导致需要重新去服务端解析,则需要变更 cacheKey |
代码示例
client.getHttpDnsResultForHostAsync("www.example.com", RequestIpType.both,
new HttpDnsCallback() {
@Override
public void onHttpDnsCompleted(HTTPDNSResult result) {
if (result != null && result.getIps() != null) {
String[] ips = result.getIps();
// 使用解析结果
}
}
});三、缓存管理接口
3.1 清空指定域名缓存
使用阿里云域名解析服务的用户,调用该接口主动清除本地缓存,可实现秒级域名配置生效。
例如:假设域名 xxx.com,解析 IP 地址为 ip1,当 ip1 遭受攻击,需要将流量迁移至 ip2,实现流程如下:
首先,用户在云解析控制台将域名对应 IP 修改为 ip2,此时在 HTTPDNS 服务端会立即获取到此变更信息,并清除服务端该域名的 ip1 缓存。
用户手动调用此接口,清空 xxx.com域名的本地缓存。
应用端清空缓存后的下一次请求,会使得服务端重新请求权威服务器,获取最新解析 IP 地址 ip2,从而使前端解析结果立即生效为 ip2。
cleanHostCache
接口定义
void cleanHostCache(ArrayList<String> hosts)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
hosts | ArrayList<String> | 是 | 需要清除的 host 域名数组。如果需要清空全部数据,传 null 或者空数组即可 |
代码示例
// 清除指定域名缓存
ArrayList<String> hosts = new ArrayList<>();
hosts.add("www.example.com");
client.cleanHostCache(hosts);
// 清除所有缓存
client.cleanHostCache(null);四、排查追踪接口
4.1 获取 SessionId
获取用于追踪解析过程的 sessionId,若遇到解析异常的情况,通过钉群、工单等方式寻找技术支持协助排查时,需要提供此信息。
sessionId 为随机生成,长度为 12 位,应用生命周期内保持不变。
getSessionId
接口定义
String getSessionId()所属类
HttpDnsClient
返回说明
类型 | 说明 |
String | sessionId |
代码示例
String sessionId = client.getSessionId();
System.out.println("SessionId: " + sessionId);4.2 获取 SDK 版本号
获取当前 SDK 版本号。
getSdkVersion
接口定义
String getSdkVersion()所属类
HttpDnsClient
返回说明
类型 | 说明 |
String | SDK 版本号 |
代码示例
String version = client.getSdkVersion();
System.out.println("SDK Version: " + version);4.3 日志控制
HttpDnsLog.enable
设置是否打开 HTTPDNS 的日志开关,默认关闭。
接口定义
static void enable(boolean enable)所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
enable | boolean | 是 | 是否打印 Log |
代码示例
HttpDnsLog.enable(true);HttpDnsLog.setLogger
可以通过设置日志的回调类来获取 SDK 内部输出的日志。
接口定义
static void setLogger(ILogger logger)所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
logger | ILogger | 是 | 设置该接口后,SDK 内部的日志会通过 ILogger 接口进行回调,便于自行控制日志的打印和存储 |
代码示例
HttpDnsLog.setLogger(new ILogger() {
@Override
public void log(String msg) {
System.out.println("[HTTPDNS] " + msg);
}
});HttpDnsLog.removeLogger
删除日志回调类。
接口定义
static void removeLogger(ILogger logger)所属类
HttpDnsLog
参数说明
参数 | 类型 | 是否必填 | 说明 |
logger | ILogger | 是 | 之前添加过的 logger |
代码示例
HttpDnsLog.removeLogger(myLogger);五、其他接口
5.1 设置 Region
动态更新 region 节点。
setRegion
接口定义
void setRegion(Region region)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
region | Region | 是 | region 为节点,设置海外 region,用于海外服务区域选择 |
代码示例
client.setRegion(Region.HK); // 切换到香港节点5.2 校正签名时间
进行该操作后,如果有偏差,每次网络请求都会对设备进行时间校正;不进行该操作的话将以设备时间为准。
setAuthCurrentTime
接口定义
void setAuthCurrentTime(long time)所属类
HttpDnsClient
参数说明
参数 | 类型 | 是否必填 | 说明 |
time | long | 是 | 当前时间的时间戳(毫秒) |
代码示例
HttpDnsClient client = HttpDnsClient.getClient(accountId);
client.setAuthCurrentTime(System.currentTimeMillis());六、常用数据结构
6.1 HTTPDNSResult
域名解析返回的解析结果数据类。
getHost
获取对应域名。
接口定义
String getHost()返回说明
类型 | 说明 |
String | 域名 |
getIps
获取解析的 IPv4 地址。
接口定义
String[] getIps()返回说明
类型 | 说明 |
String[] | 域名解析的 IPv4 地址 |
getIpv6s
获取解析的 IPv6 地址。
接口定义
String[] getIpv6s()返回说明
类型 | 说明 |
String[] | 域名解析的 IPv6 地址 |
getExtras
获取解析的额外参数,只有自定义解析会有这部分数据。
接口定义
String getExtras()返回说明
类型 | 说明 |
String | 额外参数字符串 |
isExpired
解析结果是否已经过期,是否过期是根据解析结果获取时间和域名配置的 TTL 来计算。
接口定义
boolean isExpired()返回说明
类型 | 说明 |
boolean | true:已过期;false:未过期 |
getTtl
获取解析结果的 TTL(生存时间)。
接口定义
int getTtl()返回说明
类型 | 说明 |
int | TTL,单位秒 |
6.2 RequestIpType
请求的 IP 类型枚举。
枚举值 | 说明 |
| 需要解析的类型为 IPv4 |
| 需要解析的类型为 IPv6 |
| 需要解析的类型为 IPv4 和 IPv6 |
代码示例
// 同时解析 IPv4 和 IPv6
HTTPDNSResult result = client.getHttpDnsResultForHostSyncNonBlocking(
"www.example.com",
RequestIpType.both
);6.3 Region
服务节点区域枚举,用于海外服务区域选择。
枚举值 | 说明 |
| 中国内地(默认) |
| 中国香港 |
| 新加坡 |
| 德国 |
| 美国 |
代码示例
new InitConfig.Builder().setRegion(Region.SG); // 新加坡节点6.4 HttpDnsCallback
异步域名解析接口的回调接口。
onHttpDnsCompleted
解析结束后的回调函数,成功/失败都会回调该函数。
接口定义
void onHttpDnsCompleted(HTTPDNSResult result)参数说明
参数 | 类型 | 说明 |
result | HTTPDNSResult | 解析结果对象 |
代码示例
client.getHttpDnsResultForHostAsync("www.example.com", RequestIpType.both,
new HttpDnsCallback() {
@Override
public void onHttpDnsCompleted(HTTPDNSResult result) {
if (result != null && result.getIps() != null) {
// 解析成功
} else {
// 解析失败或无结果
}
}
});6.5 ILogger
日志接口。
log
日志方法。
接口定义
void log(String msg)参数说明
参数 | 类型 | 说明 |
msg | String | 日志 |
代码示例
HttpDnsLog.setLogger(new ILogger() {
@Override
public void log(String msg) {
// 自定义日志处理
System.out.println("[HTTPDNS] " + msg);
}
});6.6 CacheTtlChanger
自定义域名解析结果 TTL 的接口。
changeCacheTtl
自定义 TTL。
接口定义
int changeCacheTtl(String host, RequestIpType type, int ttl)参数说明
参数 | 类型 | 说明 |
host | String | 域名 |
type | RequestIpType | IP 类型 |
ttl | int | 原始的 ttl |
返回说明
类型 | 说明 |
int | 自定义后的 ttl,如果不需要自定义,请返回原始的 ttl |
代码示例
new InitConfig.Builder()
.configCacheTtlChanger(new CacheTtlChanger() {
@Override
public int changeCacheTtl(String host, RequestIpType type, int ttl) {
if ("www.aliyun.com".equals(host)) {
return ttl * 10;
}
return ttl;
}
});6.7 NotUseHttpDnsFilter
不使用 HTTPDNS 解析的域名过滤接口。
notUseHttpDns
配置不使用 HTTPDNS 解析的域名。
接口定义
boolean notUseHttpDns(String hostName)参数说明
参数 | 类型 | 说明 |
hostName | String | 域名 |
返回说明
类型 | 说明 |
boolean | true:过滤当前域名,当前域名不走 HTTPDNS 的云端解析;false:不过滤当前域名,当前域名走 HTTPDNS 的云端解析 |
代码示例
new InitConfig.Builder()
.setNotUseHttpDnsFilter(new NotUseHttpDnsFilter() {
@Override
public boolean notUseHttpDns(String hostName) {
return "www.aliyun.com".equals(hostName);
}
});6.8 IPRankingBean
IP 优选配置项。设置该接口后,如果解析了相应的域名,则 SDK 会对返回的 IP 进行 IP 测速,对返回的列表进行动态排序,以保证第一个 IP 是可用性较好的 IP。
构造方法
IPRankingBean(String hostName, int port)参数说明
参数 | 类型 | 说明 |
hostName | String | 进行 IP 优选的域名 |
port | int | 用于测试速度的端口 |
getHostName
获取域名。
接口定义
String getHostName()getPort
获取端口。
接口定义
int getPort()代码示例
List<IPRankingBean> list = new ArrayList<>();
list.add(new IPRankingBean("www.example.com", 443));
list.add(new IPRankingBean("api.example.com", 8080));
new InitConfig.Builder()
.setIPRankingList(list);