API 概览

前言

Android SDK提供的API接口,根据功能特性可以分为以下几类:

  • 配置接口:SDK初始化、安全设置、性能优化、网络适配等

  • 域名解析接口:同步/异步/非阻塞解析、预解析、缓存管理等

  • 排查追踪接口:会话跟踪、日志管理、调试支持等

  • 自定义解析接口:用于自定义解析的同步/异步/非阻塞解析接口

  • 常用数据结构接口:解析结果、解析回调函数、自定义缓存TTL、解析域名过滤器等

根据对接口的支持程度,可以分为:

  • 推荐接口:当前SDK版本推荐使用的接口,进行了功能或体验优化,建议使用。

  • 废弃接口:由于功能重构或设计优化等原因不再推荐使用的接口,部分接口在新版本中可能已被移除,建议迁移到对应的推荐接口以获得更好的性能和稳定性。

本文提供Android SDK提供的所有API接口概览,帮助您快速了解和使用HTTPDNS Android SDK的各项功能。

配置接口

配置接口用于初始化和配置HTTPDNS SDK的各项功能,包括服务实例获取、缓存策略、网络参数、安全设置等。通过这些接口可以根据应用需求定制SDK的行为,优化解析性能和安全性。

推荐接口

所属类

函数声明

功能描述

引入版本

HttpDns

getService(String)

获取HTTPDNS服务实例

2.6.3

InitConfig.Builder

setContext(Context)

设置应用上下文

2.6.3

InitConfig.Builder

setSecretKey(String)

设置加签密钥

2.6.3

InitConfig.Builder

setAesSecretKey(String)

设置加密密钥

2.6.3

InitConfig.Builder

setEnableHttps(boolean)

设置是否启用HTTPS协议与服务端通信

2.2.2

InitConfig.Builder

setEnableExpiredIp(boolean)

设置是否允许返回过期IP

2.2.2

InitConfig.Builder

setEnableCacheIp(boolean, long)

允许使用过期一段时间的本地缓存

2.4.3

InitConfig.Builder

setEnableCacheIp(boolean)

开启本地缓存功能

2.2.2

InitConfig.Builder

setPreResolveAfterNetworkChanged(boolean)

设置是否在网络变化时自动刷新本地缓存

2.4.0

InitConfig.Builder

setTimeoutMillis(int)

设置解析超时时间阈值

2.4.0

HttpDnsService

setAuthCurrentTime(long)

校正签名时间

1.3.2

InitConfig.Builder

setRegion(Region)

初始化设置region节点

2.4.2

HttpDnsService

setRegion(Region)

更新region节点

2.4.2

HttpDnsService

setRegion(String)

更新region节点

2.4.2

InitConfig.Builder

configCacheTtlChanger(CacheTtlChanger)

自定义解析结果的缓存时间

2.3.0

InitConfig.Builder

setNotUseHttpDnsFilter(NotUseHttpDnsFilter)

设置不使用HTTPDNS解析的域名过滤器

2.4.0

InitConfig.Builder

setIPRankingList(List<IPRankingBean>)

设置IP优选的域名和探测端口

2.3.2

InitConfig.Builder

setSdnsGlobalParams(Map<String, String>)

设置自定义解析的全局参数

2.4.0

废弃接口

所属类

函数声明

功能描述

引入版本

废弃版本

移除版本

HttpDns

getService(Context, String)

获取HTTPDNS服务实例

1.3.2

2.6.3

-

HttpDns

getService(Context, String, String)

获取HTTPDNS服务实例

1.3.2

2.6.3

-

HttpDnsService

setHTTPSRequestEnabled

设置是否启用HTTPS协议与服务端通信

1.3.2

-

2.4.0

HttpDnsService

setExpiredIPEnabled(boolean)

设置是否允许返回过期IP

1.3.2

-

2.4.0

HttpDnsService

setCachedIPEnabled(boolean)

设置是否开启持久化缓存解析结果

1.3.2

-

2.4.0

HttpDnsService

setPreResolveAfterNetworkChanged(boolean)

设置是否在网络变化时自动刷新本地缓存

1.3.2

-

2.4.0

InitConfig.Builder

setTimeout(int)

设置解析超时时间阈值

2.0.2

2.4.0

-

HttpDnsService

setTimeoutInterval(int)

设置解析超时时间阈值

1.3.2

-

2.4.0

HttpDnsService

setLogEnabled(boolean)

设置是否启用日志输出

1.3.2

2.3.2

2.4.0

HttpDnsService

setLogger(ILogger)

设置日志回调

1.3.2

2.3.2

2.4.0

InitConfig.Builder

setRegion(String)

初始化设置region节点

1.3.2

2.4.2

-

InitConfig.Builder

setDegradationFilter(DegradationFilter)

设置不使用HTTPDNS解析的域名过滤器

2.4.0

2.4.0

-

HttpDnsService

setIPRankingList(List<IPRankingBean>)

设置IP优选的域名和探测端口

2.3.2

-

2.4.0

HttpDnsService

setIPProbeList(List<IPRankingBean>)

设置IP优选的域名和探测端口

1.3.2

2.3.2

2.3.2

HttpDnsService

setSdnsGlobalParams(Map<String, String>)

设置自定义解析的全局参数

1.3.2

-

2.4.0

域名解析接口

域名解析接口是HTTPDNS SDK的核心功能,提供多种域名解析方式,包括同步解析、异步解析和非阻塞解析。支持IPv4/IPv6双栈解析,可根据网络环境自动选择最优解析策略,并提供预解析和缓存管理功能。

推荐接口

所属类

函数声明

功能描述

引入版本

HttpDnsService

setPreResolveHosts(List<String>, RequestIpType)

设置预解析域名列表

2.4.0

HttpDnsService

getHttpDnsResultForHostSync(String, RequestIpType)

同步解析域名,阻塞线程

2.3.2

HttpDnsService

getHttpDnsResultForHostAsync(String, RequestIpType, HttpDnsCallback)

异步解析域名,回调返回结果

2.4.0

HttpDnsService

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType)

同步非阻塞解析,仅查缓存,缓存不存在,直接返回空

2.4.0

HttpDnsService

cleanHostCache(ArrayList<String>)

主动清空指定域名列表的缓存

2.2.2

废弃接口

所属类

函数声明

功能描述

引入版本

废弃版本

移除版本

HttpDnsService

getIpByHostAsync(String)

同步非阻塞解析接口,解析成IPv4,只返回一个IP

2.0.2

2.3.2

-

HttpDnsService

getIPv4ForHostAsync(String)

同步非阻塞解析接口,解析成IPv4,只返回一个IP

2.3.2

2.4.0

-

HttpDnsService

getIPv6ForHostAsync(String)

同步非阻塞解析接口,解析成IPv6,只返回一个IP

2.3.2

2.4.0

-

HttpDnsService

getIpsByHostAsync(String)

同步非阻塞解析接口,解析成IPv4,返回所有解析结果

2.0.2

2.3.2

-

HttpDnsService

getIPv4ListForHostAsync(String)

同步非阻塞解析接口,解析成IPv4,返回所有解析结果

2.3.2

2.4.0

-

HttpDnsService

getIPv6ByHostAsync(String)

同步非阻塞解析接口,解析成IPv6,只返回一个IP

2.0.2

2.3.2

-

HttpDnsService

getIPv6sByHostAsync(String)

同步非阻塞解析接口,解析成IPv6,返回所有解析结果

2.0.2

2.3.2

-

HttpDnsService

getIPv6ListForHostASync(String)

同步非阻塞解析接口,解析成IPv6,返回所有解析结果

2.3.2

2.4.0

-

HttpDnsService

getAllByHostAsync(String)

同步非阻塞解析接口,解析IPv4IPv6,返回所有解析结果

2.0.2

2.3.2

-

HttpDnsService

getHttpDnsResultForHostAsync(String)

同步非阻塞解析接口,解析IPv4IPv6,返回所有解析结果

2.3.2

2.4.0

-

HttpDnsService

getIpsByHostAsync(String, RequestIpType)

同步非阻塞解析接口,解析成IPv4,返回所有解析结果

2.0.2

2.3.2

-

HttpDnsService

getHttpDnsResultForHostAsync(String, RequestIpType)

同步非阻塞解析接口,允许指定解析烈性,返回所有解析结果

2.0.2

2.4.0

-

排查追踪接口

排查追踪接口用于问题诊断和性能监控,提供会话跟踪、日志管理等功能。通过这些接口可以获取解析过程的详细信息,便于开发者调试和运维人员排查问题,提升应用的可观测性。

推荐接口

所属类

函数声明

功能描述

引入版本

HttpDnsService

getSessionId()

获取本次进程中与HTTPDNS服务端交互的会话ID

1.3.2

HttpDnsLog

enable(boolean)

控制日志输出开关

2.0.2

HttpDnsLog

setLogger(ILogger)

设置日志回调接口

2.0.2

HttpDnsLog

removeLogger(ILogger)

删除日志回调类

2.0.2

自定义解析接口

自定义解析接口支持传递额外参数进行域名解析,满足特殊业务场景需求。可以通过自定义参数实现精细化的解析控制,如传递业务标识等,为不同业务场景提供个性化的解析服务。

推荐接口

所属类

函数声明

功能描述

引入版本

HttpDnsService

getHttpDnsResultForHostSync(String, RequestIpType, Map<String, String>, String)

同步解析接口,允许指定解析类型

2.4.0

HttpDnsService

getHttpDnsResultForHostAsync(String, RequestIpType, Map<String, String>, String, HttpDnsCallback)

异步解析接口,允许制定解析类型

2.4.0

HttpDnsService

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType, Map<String, String>, String)

同步非阻塞接口,允许制定解析类型

2.4.0

废弃接口

所属类

函数声明

功能描述

引入版本

废弃版本

移除版本

HttpDnsService

getIpsByHostAsync(String, Map<String,String>, String)

同步非阻塞接口,解析IPv4类型结果

1.3.0

2.3.2

-

HttpDnsService

getHttpDnsResultForHostAsync(String, Map<String, String> , String)

同步非阻塞接口,解析IPv4类型结果

2.0.2

2.4.0

-

HttpDnsService

getIpsByHostAsync(String, RequestIpType, Map<String,String>, String)

同步非阻塞接口,允许制定解析类型

2.0.2

2.4.0

-

HttpDnsService

getHttpDnsResultForHostAsync(String, RequestIpType, Map<String, String>, String)

同步非阻塞接口,允许指定解析类型

2.0.2

2.4.0

-

常用数据结构接口

常用数据结构接口定义了SDK中使用的核心数据类型和回调接口,包括解析结果封装、回调函数、过滤器、配置枚举等。这些接口为SDK的各项功能提供了统一的数据模型和交互规范。

推荐接口

所属类

函数声明

功能描述

引入版本

HTTPDNSResult

getHost()

获取解析的域名

1.3.2

HTTPDNSResult

getIps()

获取IPv4地址数组

1.3.2

HTTPDNSResult

getIpv6s()

获取IPv6地址数组

2.0.2

HTTPDNSResult

getExtras()

获取自定义解析返回的额外参数

1.3.2

HTTPDNSResult

isExpired()

判断解析结果是否过期

2.0.2

HttpDnsCallback

onHttpDnsCompleted(HTTPDNSResult)

解析完成时的回调函数

2.4.0

CacheTtlChanger

changeCacheTtl(String, RequestIpType, int)

自定义缓存TTL回调函数

2.3.0

NotUseHttpDnsFilter

notUseHttpDns(String)

设置不使用HTTPDNS解析的回调函数

2.4.0

ILogger

log(String)

日志输出接口

1.3.2

Region

-

区域枚举类型

2.4.2

废弃接口

所属类

函数声明

功能描述

引入版本

废弃版本

移除版本

DegradationFilter

shouldDegradeHttpDNS(String)

设置不使用HTTPDNS解析的域名过滤器

2.0.2

2.4.0

-