You need to enable JavaScript to run this app.
导航
在 Android 客户端配置 DoH 地址
最近更新时间:2024.03.29 17:41:10首次发布时间:2023.10.08 19:55:55

本文档介绍如何在 Android 客户端配置 DoH 地址。
1.0.23 或之后的 Android SDK 支持 DoH 功能。该功能默认关闭。如果您希望您的 Android App 通过 DoH 协议向 HTTPDNS 服务端发送 DNS 查询请求,参考本文档为 Android SDK 配置 DoH 地址。

说明

如果您在 Android SDK 中使用 DoH 地址接入 HTTPDNS 服务端,Android SDK 的预解析和批量刷新功能会失效。

示例项目

参见 获取并运行 Android 示例项目 获取包含 DoH 功能的示例项目。

前提条件

警告

如果您希望移动解析 HTTPDNS 使用 DoH 解析某个域名,您必须确保在控制台添加该域名并开启 DoH接入

  • 对于没有在控制台添加的域名,解析会失败,HTTPDNS 服务端会返回 403 错误码。
  • 如果 DoH接入 没有处于开启状态,解析会失败,HTTPDNS 服务端会返回 403 错误码。

实现方法

  1. 导入 AbsOptionalHttpDnsDepend 抽象类。
import AbsOptionalHttpDnsDepend;
  1. 初始化 Android SDK 时,继承 AbsOptionalHttpDnsDepend 抽象类,并重写 useDoh 方法开启 SDK 的 DoH 功能。DoH 功能默认关闭。
public class TestHttpDnsDepend  extends AbsOptionalHttpDnsDepend implements IHttpDnsDepend {

    ...

    // 开启 Android SDK 的 DoH 功能
    @Override
    public boolean useDoh() {
        return true;
    }

}
  1. 初始化 SDK 完成后,调用 setHttpDnsDomainList 方法,设置 SDK 通过 DoH 地址接入 HTTPDNS 服务端。
ArrayList<String> DoHDomains = new ArrayList<String>();
// 为 SDK 设置 DoH 接入域名
DoHDomains.add("doh-xxxxxxxxxxxxxxx.volcdns.pub");
HttpDns.getService().setHttpDnsDomainList(DoHDomains);

后续步骤

参见 集成方案 在您的 App 中通过 DoH 协议发送 DNS 查询请求并获取解析结果。集成方案 同时适用于 HTTPDNS 请求和 DoH 请求。