我正在编写一个测试不同URL的程序 . 我正在使用HttpURLConnection,它适用于大多数URL,除了其中至少有一个要求网址有“www” . 在前面,而大多数没有 .
有人知道为什么吗?当我有一个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.net.UnknownHostException:在java.net.AbstractPlainSocketImpl.connect(未知来源)在java.net.PlainSocketImpl.connect(未知来源)在java.net.SocksSocketImpl.connect(未知来源)在java.net.Socket中位于sun.net.www.http.HttpClient.openServer(未知来源)sun.net.NetworkClient.doConnect(未知来源)的java.net.Socket.connect(未知来源)的.connect(未知来源) .http.HttpClient.openServer(未知来源),位于sun.net.www.http.HttpClient . (未知来源)sun.net.www.http.HttpClient.New(未知来源)sun.net.www . http.HttpClient.New(未知来源)在sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(未知来源)在sun.net.www.protocol.http.HttpURLConnection.plainConnect0(未知来源)在sun.net . www.protocol.http.HttpURLConnection.plainConnect(未知来源)在sun.net.www.protocol.http.HttpURLConnection.connect(未知来源)在sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知来源)在sun.net . www.protocol.http.HttpURLConnection.getInputStream(来源不明)在java.net.HttpURLConnection.getResponseCode(来源不明)在com.workfromhome.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