Force retry on specific http status code

后端 未结 2 1527
臣服心动
臣服心动 2021-02-01 09:29

Dealing with a specific website, sometimes I receive a http response with status code 403. I wanted to re-execute the request in such cases (because, in my specific situation, t

2条回答
  •  無奈伤痛
    2021-02-01 09:59

    Try using a custom ServiceUnavailableRetryStrategy

    CloseableHttpClient client = HttpClients.custom()
            .setServiceUnavailableRetryStrategy(new ServiceUnavailableRetryStrategy() {
                @Override
                public boolean retryRequest(
                        final HttpResponse response, final int executionCount, final HttpContext context) {
                    int statusCode = response.getStatusLine().getStatusCode();
                    return statusCode == 403 && executionCount < 5;
                }
    
                @Override
                public long getRetryInterval() {
                    return 0;
                }
            })
            .build();
    

提交回复
热议问题