2017-10-10 28 views
0

예외가 발생한 후 HttpClient에서이 문제가 발생하여 서버에 아무런 시도도하지 않습니다.예외가 발생한 후 HttpClient가 다시 시도되지 않습니다.

나는 처음에 연결을 설정하는 데 CloseableHttpClient을 사용하고 내가 발견하면 수시로 IOException이을 throughing 된 것이 었습니다. 이것은 여러 가지 이유가있을 수 있지만 클라이언트가 서버에 몇 번 연결을 시도 할 것이라고 생각했습니다. 그러나 그것은 그럴 듯하지 않았다. 내 이해는 CloseableHttpClient 문이 실행 된 후 및/또는 예외가 발생하여 다시 시도가없는 연결을 닫는 것입니다.

내가 보았던 HttpClient를 및 설명서에 클라이언트가 자동으로 치명적되지 복구를 시도하는 연결 기본 HttpClient를 당

을 설정할 수 없을 때 자동 재 시도가 발생한다고 오류, 즉 일반 IOException이 발생하는 경우 요청이 대상 서버로 완전히 전송 된 적이없는 경우 HttpClient는 메서드를 세 번 다시 시도합니다. HTTP 방법 복구에 대한 자세한 토론

그래서 IOException가 발생하면 HttpClient를 예외 처리 가이드를 참조하시기 바랍니다 더 많은 시도가 있어야한다.

클라이언트가 서버와의 연결을 시도 할 때 실패 할 경우 몇 번 더 시도하는지 확인하기 위해 어떤 방법을 사용해야합니까?

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

답변

0

나는이가없는 한 기본 예외의 한, 귀하의 요청에 당신이 그것을 설정 횟수를 재 시도해야 당신이 당신의 클라이언트를 만들 때 DefaultHttpRequestRetryHandler

를 사용하는 것이 좋습니다.