解決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);

超時設置即生效。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章