我正在使用 apache HTTPClient 4.2。我使用下面的代码来获取 HTTP 状态代码。它给了我 404
。
DefaultHttpClient client = new DefaultHttpClient();
HttpContext context = new BasicHttpContext();
HttpUriRequest method = new HttpGet("http://michaelkimsal.com/blog/hosted-solr-or-lucene-service/comment-page-1/#comment-604253");
try {
HttpResponse httpResponse = client.execute(method,context);
int status = httpResponse.getStatusLine().getStatusCode();
System.out.println("The status is:"+status);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
但是如果将网址更改为此(我已将 www 添加到网址),http://www.michaelkimsal.com/blog/hosted-solr-or-lucene-service/comment-page-1/#comment-604253
它给了我 200
。这种行为的原因可能是什么?请有人帮助解决这个问题。
最佳答案
http://michaelkimsal.com在您的情况下不是有效的域,浏览器在某些情况下是智能的,可以自动处理这种情况,您应该使用带有 www 的正确域。
编辑 请查看this serverault 和 wiki 的链接
它适用于谷歌,因为它已经为此完成了 DNS 解析设置。您还可以设置别名
关于java - HTTPClient 给 404 没有 www 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11877393/