HttpClient在异常后不会重试
问题描述:
我遇到了HttpClient的问题,它在发生异常后没有对服务器进行任何尝试。HttpClient在异常后不会重试
我已初步使用CloseableHttpClient建立连接,什么我发现是,它throughing IOException异常不时。 这可能是由于不同的原因,但我认为客户端会尝试连接到服务器几次。但似乎并非如此。 我的理解是,CloseableHttpClient在执行语句和/或发生异常之后关闭连接,因此没有重试。
我看着HttpClient的及文档中它指出自动重试时,客户端无法建立连接
每默认的HttpClient会自动尝试从 不是致命的恢复发生错误,即抛出普通IOException时。 如果请求 从未完全传输到目标服务器,HttpClient将重试该方法三次。有关HTTP方法恢复的详细 讨论,请参阅HttpClient的 异常处理指南
所以,如果一个IOException发生,应该有更多的尝试。
我应该使用什么方法来确保当客户端尝试与服务器建立连接时,如果尝试失败,它会再尝试几次?
private Map<String, String> queryResults(String query) throws OrnClientException {
try {
HttpResponse response = httpClient.execute(new HttpGet(concatURL));
final String result = EntityUtils.toString(response.getEntity());
return extractMapFromQueryResults(result);
} catch (IOException e) {
}
}
httpClient.execute(新HTTPGET(concatURL));
这是我得到IOException的地方。
哪里的代码与您的问题有关? – Alfabravo
我有更新我的文章 – Sgr