使用HttpClient 4.1.3,我编写了以下代码:
HttpClient httpClient = HttpClientFactory.newHttpClient();
HttpGet httpGet = new HttpGet("some/url/to/hit");
HttpResponse httpResp = httpClient.execute(httpGet);
int statusCode = httpResp.getStatusLine().getStatusCode();
if(statusCode != HttpStatus.SC_OK)
throw new Exception(/* ... */);这是从一个特定的URL获取HTTP500个响应(如在httpResp.getStatusLine().getStatusCode()中找到的)并抛出异常。
问题是,当我进入浏览器中的“失败”URL时,它运行的非常好。
所以我问:
HttpClient会不会超时,缩短请求响应周期,只给我一个HTTP500?HttpClient怎么可能给我500 s呢?提前感谢!
发布于 2012-12-15 14:06:48
我也有同样的问题。我可以通过浏览器访问网站,但是在使用apache客户端时,我始终会得到http 500内部服务器错误。问题是“内容类型”获取标题。它具有“多部分/相关”的值,有些服务器似乎不喜欢这个值。我把它改为"text/html“,一切都很好。
希望这能有所帮助。
发布于 2013-11-16 17:14:46
我在访问基于spring xml的api时也遇到了同样的问题。通过将accept标头设置为xml和html解决了问题。
httpGet.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;"); https://stackoverflow.com/questions/12954331
复制相似问题