You need to enable JavaScript to run this app.
导航

验证 HTTPDNS 解析是否生效

最近更新时间2024.02.20 15:11:56

首次发布时间2024.02.20 15:11:56

本文档介绍了在集成 Android SDK 后,如何验证 HTTPDNS 解析是否生效。

您可以通过以下任意一个方法验证 HTTPDNS 解析是否生效。

操作步骤

在调用 getHttpDnsResult 方法获取 DnsResult 对象后,您可以调用 log 类 的方法把 DnsResult 打印到日志。

例如,您调用 Log.d()DnsResult 对象的文本值输出到日志:

private static final String TAG = "MyActivity";
DnsResult dnsResult = HttpDns.getService().getHttpDnsResultForHostSyncBlock(hostname);
StringBuilder dnsResultString = new StringBuilder("host : " + dnsResult.host + "\n" +
        "getHttpDnsResultForHostSyncBlock cost : " + cost + "\n" +
        "dns source : " + dnsResult.source + "\n" +
        "ipv4 list : " + dnsResult.ipv4List + "\n" +
        "ipv6 list : " + dnsResult.ipv6List + "\n" +
        "dns result ttl : " + dnsResult.ttl + "\n" +
        "dns request cost : " + dnsResult.rtt + "\n" +
        "client ip : " + dnsResult.cip + "\n");

List<DnsTaskInfo> taskInfos = dnsResult.taskInfoList;
for (DnsTaskInfo taskInfo : taskInfos) {
    dnsResultString.append(taskInfo.toJson()).append("\n");
}
Log.d(TAG, dnsResultString.toString());

在运行 App 时,您就可以通过 TAG[DEBUG] 在 logcat 中找到日志,从而验证 HTTPDNS 解析是否生效。参见 DnsResult 了解每个属性的具体含义。

例如,下面的日志说明 HTTPDNS 解析对于 api3-normal.toutiaoapi.com 域名生效。

host : api3-normal.toutiaoapi.com
getHttpDnsResultForHostSyncBlock cost : 86
dns source : HTTPDNS_REQUEST
ipv4 list : [140.207.232.201, 140.207.232.199, 140.207.236.195, 140.207.232.196, 140.207.236.193, 140.207.236.191, 140.207.232.197, 140.207.236.192, 140.207.232.200, 140.207.232.198, 140.207.236.190, 140.207.236.197, 140.207.232.194, 140.207.232.195, 140.207.236.196, 140.207.236.194]
ipv6 list : [2408:870c:1000:6:3::3e8, 2408:870c:1000:6:3::3e9]
dns result ttl : 51
dns request cost : 80
client ip : 211.95.64.134
{"type":0,"duration":84,"error":0,"httpdns_subtype":0}

如果 HTTPDNS 解析不生效,您可以根据 error 属性返回的错误码排查问题。参见 常见问题