如果首次使用HTTPNDNS域名解析不成功,可以根据下面的步骤来进行排查:
1.遇到问题可以先通过文档页进行关键字搜索,或者使用云博士检索,一般都能命中相关的疑问。
2.首先排查在控制台上是否添加了需要解析的域名,使用HTTPDNS解析域名请求示例时:http://203.107.1.33/{Youraccount ID}/d?host=www.aliyun.com(尽量使用控制台申请的Account ID,否则解析可能为空)。
3.检查网络是否能正常访问,以及请求的url是否设置了HOST请求字段。
- // 比如您要访问http://www.aliyun.com/,假设www.aliyun.com域名的解析结果是140.205.62.8。<br/>
- // 一般情况下,使用IP的方式进行访问时,需要设置HTTP请求头的HOST字段为原来的域名。<br/>
- String fullPath = "http://140.205.62.8/";<br/>
- String host = "www.aliyun.com";<br/>
- URL url = new URL(fullPath);<br/>
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();<br/>
- // 设置HTTP请求头HOST字段为www.aliyun.com<br/>
- conn.setRequestProperty("Host", host);
4.查看是否调用异步请求接口,如果初次调用异步请求接口返回为空是正常的,需要延迟一段时间,再次调用才能拿到IP。
Android异步接口:
-
String getIpByHostAsync(String host);<br/>
- String[] getIpsByHostAsync(String host);
5.如果还是为空,检查当前是否为调试状态,有时调试状态+ttl较短也会导致IP过期,返回IP结果为空。
6.使用Demo运行查看,比对结果。
Demo程序