tencent cloud

文档反馈

Android SDK API 接口

最后更新时间:2023-06-06 10:57:54

    同步解析接口

    /**
    * HTTPDNS 同步解析接口
    * 首先查询缓存,若存在则返回结果,若不存在则进行同步域名解析请求
    * 解析完成返回最新解析结果
    * 返回值字符串以“;”分隔,“;”前为解析得到的 IPv4 地址(解析失败填“0”),“;”后为解析得到的 IPv6 地址(解析失败填“0”)
    * 返回示例:121.14.77.221;2402:4e00:1020:1404:0:9227:71a3:83d2
    * @param domain 域名(如www.qq.com)
    * @return 域名对应的解析 IP 结果集合
    */
    String ips = MSDKDnsResolver.getInstance().getAddrByName(domain);
    
    /**
    * HTTPDNS 同步解析接口(批量查询)
    * 首先查询缓存,若存在则返回结果,若不存在则进行同步域名解析请求
    * 解析完成返回最新解析结果
    * 返回值 ipSet 即解析得到的 IP 集合
    * ipSet.v4Ips 为解析得到 IPv4 集合, 可能为 null
    * ipSet.v6Ips 为解析得到 IPv6 集合, 可能为 null
    * 单独域名返回结果示例:IpSet{v4Ips=[121.14.77.201, 121.14.77.221], v6Ips=[2402:4e00:1020:1404:0:9227:71ab:2b74, 2402:4e00:1020:1404:0:9227:71a3:83d2], ips=null}
    * 多域名返回结果示例:IpSet{v4Ips=[www.baidu.com:14.215.177.39, www.baidu.com:14.215.177.38, www.youtube.com:104.244.45.246], v6Ips=[www.youtube.com.:2001::1f0:5610], ips=null}
    * @param domain 支持多域名,域名以“,”分割,例如:qq.com,baidu.com
    * @return 域名对应的解析 IP 结果集合
    */
    Ipset ips = MSDKDnsResolver.getInstance().getAddrsByName(domain);

    异步解析接口

    // 异步回调,注意所有异步请求需配合异步回调使用
    MSDKDnsResolver.getInstance().setHttpDnsResponseObserver(new HttpDnsResponseObserver() {
    @Override
    public void onHttpDnsResponse(String tag, String domain, Object ipResultSemicolonSep) {
    long elapse = (System.currentTimeMillis() - Long.parseLong(tag));
    String lookedUpResult = "[[getAddrByNameAsync]]:ASYNC:::" + ipResultSemicolonSep +
    ", domain:" + domain + ", tag:" + tag +
    ", elapse:" + elapse;
    }
    });
    
    /**
    * HTTPDNS 异步解析接口(需配合异步回调使用)
    * 首先查询缓存,若存在则返回结果,若不存在则进行异步域名解析请求
    * 解析完成会在异步回调返回最新解析结果
    * @param domain 域名(如www.qq.com)
    */
    MSDKDnsResolver.getInstance()
    .getAddrByNameAsync(hostname, String.valueOf(System.currentTimeMillis()))
    
    /**
    * HTTPDNS 异步解析接口(批量查询,需配合异步回调使用)
    * 首先查询缓存,若存在则返回结果,若不存在则进行同步域名解析请求
    * 解析完成会在异步回调返回最新解析结果
    * @param domain 支持多域名,域名以“,”分割,例如:qq.com,baidu.com
    */
    MSDKDnsResolver.getInstance()
    .getAddrsByNameAsync(hostname, String.valueOf(System.currentTimeMillis()))
    如何提升IPv6使用率
    如上所示,单个域名解析时,返回固定格式为 IPv4、IPv6,批量域名解析时,返回格式为 IpSet{v4Ips=[], v6Ips=[], ips=[]}。业务可按需获取 IPv6 地址进行 URL 请求。
    使用 IPv6 地址进行 URL 请求时,需添加方框号[ ]进行处理,例如:http://[64:ff9b::b6fe:7475]/
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持