客户端创建后,CloseableHttpClient设置连接超时

时间:2018-12-06 08:10:24

标签: java httprequest java-client

我当时使用的是 DefaultHttpClient ,现在已经过时了。因此,我正在尝试适应建议的 CloseableHttpClient

DefaultHttpClient 中,似乎我们可以先创建一个客户端,然后设置参数:

this.client = new DefaultHttpClient();
// Do some work, then change connection timeout
HttpConnectionParams.setConnectionTimeout(this.client.getParams(), milliseconds);

但是使用CloseableHttpClient,我将必须在之前设置客户端建立连接超时:

// Create request config builder
RequestConfig.Builder requestBuilder = RequestConfig.custom();
requestBuilder = requestBuilder.setConnectTimeout(timeout);

// Create client builder
HttpClientBuilder clientBuilder = HttpClientBuilder.create();
// Set request configuration
clientBuilder.setDefaultRequestConfig(requestBuilder.build());

// Build client with configuration set in clientBuilder
this.client = clientBuilder.build();

这显然不方便,因为我想在需要时设置连接超时。

我试图找到解决办法,但是没有运气。

与此问题类似的属性,例如:

上一个设置套接字超时

HttpConnectionParams.setSoTimeout(this.client.getParams(), milliseconds);

上一个设置代理

HttpHost proxy = new HttpHost(proxyHost, port, scheme);
this.client.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);

上一个设置最大Http连接数

((ThreadSafeClientConnManager) this.client.getConnectionManager()).setMaxTotal(maxConnections);

使用CloseableHttpClient是否可以达到相同的效果?

0 个答案:

没有答案