使用的是Apache Commons HttpClient,为什么不使用HttpClient httpClient = new HttpClient(); httpClient.setConnectionTimeout(9000);而去使用HttpClient httpClient = new HttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);二者的区别是什么
时间: 2024-03-05 17:51:46 浏览: 156
这两个设置连接超时时间的方法的区别在于,第一个方法设置的是HttpClient实例的连接超时时间,而第二个方法设置的是HttpClient实例对应的HttpConnectionManager的连接超时时间。如果使用第一个方法,将会对所有请求生效,而使用第二个方法可以对不同的请求设置不同的连接超时时间。
另外,Apache Commons HttpClient已经被废弃,推荐使用Apache HttpComponents中的HttpClient来进行网络请求。在使用HttpComponents的HttpClient时,设置连接超时时间的方法为:
```
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.build();
HttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build();
```
这里使用了RequestConfig类来设置连接超时时间,而不是直接设置HttpClient实例或HttpConnectionManager的连接超时时间。这样可以更加灵活地对不同的请求设置不同的连接超时时间。
相关问题
org.apache.commons.httpclient.HttpClient设置http请求的超时时间
如果你使用的是Apache Commons HttpClient,可以通过以下方式来设置HTTP请求的超时时间:
1. 设置连接超时时间
```
HttpClient httpClient = new HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
```
上面的代码将连接超时时间设置为5秒。
2. 设置请求超时时间
```
HttpClient httpClient = new HttpClient();
httpClient.getHttpConnectionManager().getParams().setSoTimeout(5000);
```
上面的代码将请求超时时间设置为5秒。
需要注意的是,以上两种超时时间设置方式均采用毫秒为单位。另外,Apache Commons HttpClient已经不再维护,推荐使用Apache HttpComponents来发送HTTP请求。
阅读全文