全部产品
  • 首页 > 
  • HTTPDNS的Android SDK客户端如何使用域名进行访问

HTTPDNS的Android SDK客户端如何使用域名进行访问

KB: 157617

 · 

更新时间:2021-05-14 10:10

概述

HTTPDNS的Android客户端,默认使用IP地址进行访问,不可以直接使用域名进行访问,若您需要使用域名进行访问,可参考本文进行操作。

详细信息

标准的HTTP协议中服务端会将HTTP请求头HOST字段的值作为请求的域名信息进行解析,进而导致服务端的解析异常(服务端认可的是您的域名信息,而非IP信息),您可以参见以下内容,设置HTTP请求HOST字段的值,即可使用域名进行访问:

String originalUrl = "http://www.aliyun.com/";
URL url = new URL(originalURL);
String originalHost = url.getHost();
// 异步接口获取 IP
String ip = httpdns.getIpsByHostAsync(originalHost);
HttpURLConnection conn;
if (ip != null) {
// 通过HTTPDNS获取IP成功,进行URL替换和HOST头设置
url = new URL(originalUrl.replaceFirst(originalHost, ip));
conn = (HttpURLConnection) url.openConnection();
// 设置请求HOST字段
conn.setRequestProperty("Host", originHost);
} else {
conn = (HttpURLConnection) url.openConnection();
}

适用于

  • HTTPDNS