我需要能够在CloseAbleHttpClient中修改超时设置。这是我设置不同超时的方法:

RequestConfig config = RequestConfig.copy(RequestConfig.DEFAULT)
            .setConnectTimeout(timeout)
            .setSocketTimeout(timeout)
            .setConnectionRequestTimeout(managerTimeout)
            .build();

    httpClient = HttpClients.custom()
            .setConnectionManager(connectionManager)
            .setDefaultRequestConfig(config)
            .build();


我是否必须创建一个新的RequestConfig对象,并再次构建HttpClients.custom()来实现这一目标?我已经尝试过了,问题出在我需要我的CloseableHttpClient是最终版本。如果我将超时设置为2次,则无法实现。感谢您提供有关如何最好地修改timout属性的任何输入!

最佳答案

没有什么可以阻止您针对每个请求使用不同的请求配置

RequestConfig defaultRequestConfig = RequestConfig.custom()
        .setConnectTimeout(timeout)
        .setSocketTimeout(timeout)
        .setConnectionRequestTimeout(managerTimeout)
        .build();

CloseableHttpClient httpClient = HttpClients.custom()
        .setConnectionManager(connectionManager)
        .setDefaultRequestConfig(defaultRequestConfig)
        .build();

RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig)
        .setConnectTimeout(timeout * 2)
        .setSocketTimeout(timeout * 2)
        .setConnectionRequestTimeout(managerTimeout * 2)
        .build();

HttpGet get = new HttpGet();
get.setConfig(requestConfig);

10-06 06:40