使用默认配置创建httpclient的实例,代码如下:

CloseableHttpClient client = HttpClients.createDefault();

需要自己定制HttpClient客户端的话,我们使用HttpClients.custom(),然后调用各种set方法即可,一般建议使用:

HttpClients.custom().setDefaultRequestConfig()

org.apache.http.client.config.RequestConfig类提供了很多可定制的参数,我们可以根据自己的配置来使用相关配置。有几个参数我们自己必须设置一下:

(1)connectionRequestTimeout:从连接池中获取连接的超时时间,超过该时间未拿到可用连接,会抛出:
ConnectionPoolTimeoutException: Timeout waiting for connection from pool

(2)connectTimeout:连接上服务器(握手成功)的时间,超出该时间抛出connect timeout

(3)socketTimeout:服务器返回数据(response)的时间,超过该时间抛出read timeout

以上3个超时相关的参数如果未配置,默认为-1,意味着无限大,就是一直阻塞等待!