创建httpClient时,设置timeout时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建httpClient时,设置timeout时间相关的知识,希望对你有一定的参考价值。

  1. //private static HttpClient httpClient = HttpClientBuilder.create().build();  

  2. private static CloseableHttpClient httpClient;// = HttpClientBuilder.create().build(); //no timeout handling...  

  3.   

  4. static {  

  5.    RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();  

  6.    //客户端和服务器建立连接的timeout  

  7.    requestConfigBuilder.setConnectTimeout(30000);  

  8.    //从连接池获取连接的timeout  

  9.    requestConfigBuilder.setConnectionRequestTimeout(30000);  

  10.    //连接建立后,request没有回应的timeout  

  11.    requestConfigBuilder.setSocketTimeout(30000);  

  12.   

  13.    HttpClientBuilder clientBuilder = HttpClientBuilder.create();  

  14.    clientBuilder.setDefaultRequestConfig(requestConfigBuilder.build());  

  15.    clientBuilder.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(30000).build()); //连接建立后,request没有回应的timeout  

  16.    clientBuilder.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy());  

  17.    httpClient = clientBuilder.build();  


以上是关于创建httpClient时,设置timeout时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在并发中给 HttpClient 设置不同的超时时间?

HttpClient.Timeout 和使用 WebRequestHandler 超时属性有啥区别?

httpclient设置超时。

HttpClient 设置超时问题

HttpClient Timeout

HttpClient webform 表单请求timeout原因