开发者社区> 问答> 正文

HTTPDNS Android sdk拿到ip为空的排查步骤究竟该怎么才是正确的


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


  • 1.遇到问题可以先通过文档页进行关键字搜索,或者使用云博士检索,一般都能命中相关的疑问。

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

  • 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。
    Android异步接口:
    1.   String getIpByHostAsync(String host);<br/>
    2.   String[] getIpsByHostAsync(String host);

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

  • 6.使用Demo运行查看,比对结果。
    Demo程序

展开
收起
猫饭先生 2017-10-20 14:06:53 2048 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载