在完成Android SDK接入后,您可以通过模拟 Local DNS 异常的方式,验证 HTTPDNS 是否已成功生效。本文将提供具体的测试方法与步骤。
验证原理
HTTPDNS 通过 HTTP 或 HTTPS 协议直接向阿里云 DNS 服务器发起解析请求,绕过系统 Local DNS,避免因网络环境导致的劫持或解析失败。
在移动设备上,Local DNS 通常由当前网络提供:Wi‑Fi 连接时使用路由器或运营商配置的 DNS,移动数据则使用运营商的 DNS。以 Wi-Fi 环境为例,修改 Wi‑Fi DNS 相当于直接改变 Local DNS 的工作状态,将 Wi‑Fi DNS 设置为无效地址,可制造 Local DNS 解析失败的环境。在劫持模拟的环境下发起网络请求时:
请求成功:已绕过 Local DNS,HTTPDNS 接入成功
请求失败:依赖 Local DNS,HTTPDNS 接入失败
测试准备
测试设备:安卓手机,支持手动修改 Wi‑Fi DNS
网络环境:可连接 Wi‑Fi,并可手动修改其 DNS 地址
App 状态:已集成 EMAS HTTPDNS SDK
测试域名:已在阿里云 HTTPDNS 控制台配置并使用的业务域名
测试步骤
步骤 1:正常网络验证
将测试设备连接至任意可用 Wi‑Fi 网络,保持默认 DNS 设置。

在关闭 HTTPDNS 的情况下,打开 App,触发任意一个通过域名访问的网络请求(如首页加载、接口调用)。
确认请求返回正常。
此步骤用于建立对比基准,确保 App 和服务在正常网络环境下工作正常
步骤 2:模拟 Local DNS 解析异常
打开测试设备的 Wi‑Fi 设置,长按当前已连接的 Wi‑Fi,选择“修改网络”或“高级选项”。
将 IP 设置更改为“静态”。
在 DNS 1 和 DNS 2 字段输入无效的 IP 地址,例如
1.2.3.4或100.100.100.100,确保 Local DNS 无法解析域名。说明注意:避免使用 114.114.114.114、8.8.8.8 等有效公共 DNS

保存配置并重新连接该 Wi‑Fi 网络。
步骤 3:在“劫持”环境下进行验证
确认设备已连接步骤 2 中修改过的 Wi‑Fi(DNS 为无效地址)。
关闭移动数据连接,避免 Wi‑Fi 不可用时系统自动切换到移动网络。
开启 HTTPDNS,打开 App,触发与步骤 1 相同的业务请求(例如首页加载或接口调用)。
观察请求结果:
请求结果
结论
示例
网络请求成功
已绕过 Local DNS,域名解析由 HTTPDNS 完成,说明HTTPDNS 接入成功

网络请求失败
首次请求失败,可能存在缓存缺失降级到 Local DNS 的情况,稍等后重试
若多次请求仍失败,说明仍依赖 Local DNS,解析在“劫持”环境下失败,HTTPDNS 接入失败
说明在使用同步非阻塞接口进行域名解析时,建议开启预解析setPreResolveHosts和允许过期接口setEnableExpiredIp,以确保本地缓存中有可用解析结果,避免因缓存缺失而回退到 Local DNS,从而影响验证准确性。