我当时使用的是 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是否可以达到相同的效果?