全部产品
    HTTPDNS Android SDK拿到ip为空的排查步骤

HTTPDNS Android SDK拿到ip为空的排查步骤

更新时间:2020-09-24 14:19:29

如果首次使用HTTPNDNS域名解析不成功,可以根据下面的步骤来进行排查:

1.首先排查在控制台上是否添加了需要解析的域名,使用HTTPDNS解析域名请求示例时:http://203.107.1.33/{Your account ID}/d?host=www.aliyun.com(尽量使用控制台申请的Account ID,否则解析可能为空)。

2.如果不使用secretKey,需要在控制台的”鉴权设置”中开启”非鉴权接口访问权限”。

3.检查网络是否能正常访问,以及请求的url是否设置了HOST请求字段。

  1. // 比如您要访问http://www.aliyun.com/,假设www.aliyun.com域名的解析结果是140.205.62.8。<br/>
  2. // 一般情况下,使用IP的方式进行访问时,需要设置HTTP请求头的HOST字段为原来的域名。<br/>
  3. String fullPath = "http://140.205.62.8/";<br/>
  4. String host = "www.aliyun.com";<br/>
  5. URL url = new URL(fullPath);<br/>
  6. HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br/>
  7. // 设置HTTP请求头HOST字段为www.aliyun.com<br/>
  8. conn.setRequestProperty("Host", host);

4.查看是否调用异步请求接口,如果初次调用异步请求接口返回为空是正常的,需要延迟一段时间,再次调用才能拿到IP。

  1. Android异步接口:<br/>
  2. String getIpByHostAsync(String host);<br/>
  3. String[] getIpsByHostAsync(String host);

5.如果还是为空,检查当前是否为调试状态,有时调试状态+ttl较短也会导致IP过期,返回IP结果为空。

6.如果同时使用了友盟SDK,需要将HTTPDNS SDK的初始化放到友盟SDK初始化前面,后续会优化该场景共同使用问题。

7.使用Demo运行查看,比对结果。

Demo参考:

若上述步骤仍未能定位问题,可以通过技术支持获取帮助。