解决httpclient超时设置不生效的问题

初始设置如下:

        //超时设置
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(400).setSocketTimeout(400).build();
 
        request.setEntity(s);
        request.setConfig(requestConfig);
        
        HttpClient client = new HttpClient();
        HttpResponse httpResponse = client.execute(request);

发现设置并未生效,后发现是由于没有设置重试选项,将代码修改如下:

        private HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {
            @Override
            public boolean retryRequest(IOException exception,
                    int executionCount, HttpContext context) {
                return false;
            }};
 
        //超时设置
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(connectTImeoutInMills).setSocketTimeout(socketTImeoutInMills).build();
 
        request.setEntity(s);
        request.setConfig(requestConfig);
        
        HttpClient client = HttpClients.custom().setRetryHandler(myRetryHandler).build();
        HttpResponse httpResponse = client.execute(request);

超时设置即生效。
 

你可能感兴趣的:(apache的jar包)