使用HttpUrlConnection的java测试URL仅适用于前面的www
我正在编写一个测试不同URL的程序。我使用的是HttpURLConnection,它可以很好地用于大多数url,但至少有一个url要求url前面有“www”,而大多数url没有
有人知道这是为什么吗?当我前面有一个www.的时候,我得到了200的回复,但是如果我不需要的话,我宁愿不必附加这个,因为我的网站不是都以www.开头的
url = "http://" + url;
System.out.println("Testing " + url);
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
int responseCode = conn.getResponseCode();
switch(responseCode){
case 200: System.out.println("URL is valid.");
break;
case 301: case 302: case 303: System.out.println("URL is being redirected.");
redirect(conn);
break;
default: System.out.println("URL not valid.");
break;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出: JAVA网未知后异常: 在爪哇。网抽象素socketimpl。连接(未知源) 在爪哇。网普通袜子。连接(未知源) 在爪哇。网SocksSocketImpl。连接(未知源) 在爪哇。网插座连接(未知源) 在爪哇。网插座连接(未知源) 在太阳下。网网络客户端。doConnect(未知源) 在太阳下。网www.http。HttpClient。openServer(未知源) 在太阳下。网www.http。HttpClient。openServer(未知源) 在太阳下。网www.http。HttpClient。(来源不明) 在太阳下。网www.http。HttpClient。新的(未知来源) 在太阳下。网www.http。HttpClient。新的(未知来源) 在太阳下。网www.protocol。http。HttpURLConnection。getNewHttpClient(未知源) 在太阳下。网www.protocol。http。HttpURLConnection。plainConnect0(未知源) 在太阳下。网www.protocol。http。HttpURLConnection。plainConnect(未知源) 在太阳下。网www.protocol。http。HttpURLConnection。连接(未知源) 在太阳下。网www.protocol。http。HttpURLConnection。getInputStream0(未知源) 在太阳下。网www.protocol。http。HttpURLConnection。getInputStream(未知源) 在爪哇。网HttpURLConnection。getResponseCode(未知源) 在com。在家工作。UrlChecker。main(UrlChecker.java:19)
# 1 楼答案
我已经运行了你的代码,你的代码运行得很好。您遇到的问题是如何为特定站点注册域/DNS。为了不在URL前面列出www,它需要第二次DNS注册,因此是特定于站点的
请参阅此链接:
http://www.webdeveloper.com/forum/showthread.php?218551-Why-do-some-site-require-quot-www-quot-at-the-front-of-the-domain-and-some-don-t