Я использую CloseableHttpClient
для вызова POST
URL-адреса и получения данных ответа от REST
URL-адреса.
Я хочу выйти из кода в случае, если retryrequest
не удастся 3 раза для запроса.
Прямо сейчас мой код пытается трижды, если нет ответа, и затем пытается выполнить следующий запрос.Как сделать так, чтобы код завершался, если запрос на повторную попытку не удался три раза.
int maxRetries = 3;
CloseableHttpClient client = HttpClientBuilder.create()
.setRetryHandler(new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
return executionCount <= maxRetries;
}
})
.setServiceUnavailableRetryStrategy(new ServiceUnavailableRetryStrategy() {
int waitPeriod = 500;
@Override
public boolean retryRequest(HttpResponse response, int executionCount, HttpContext context) {
waitPeriod *= 2;
return executionCount <= maxRetries &&
response.getStatusLine().getStatusCode() >= 500; //important!
}
@Override
public long getRetryInterval() {
return waitPeriod;
}
})
.build();
HttpPost post = new HttpPost(url);
try{...
}
catch(IOException e) {
}
} finally {
post.releaseConnection();
}