在 HttpClient (4.5) 中编辑超时
Edit timeout in HttpClient (4.5)
我需要能够修改我的 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 次,这是不可能的。对于如何最好地修改超时属性,我将不胜感激!
没有什么可以阻止您在每个请求的基础上使用不同的请求配置
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);
我需要能够修改我的 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 次,这是不可能的。对于如何最好地修改超时属性,我将不胜感激!
没有什么可以阻止您在每个请求的基础上使用不同的请求配置
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);