2017-10-10 41 views
0

我遇到了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的地方。

+0

哪里的代码与您的问题有关? – Alfabravo

+0

我有更新我的文章 – Sgr

回答