//设置请求超时时间
        RequestConfig requestConfig = RequestConfig.custom()
               .setConnectTimeout(2000)
               .setConnectionRequestTimeout(2000)
               .setSocketTimeout(2000)
               .build();

说明

ConnectionRequestTimeout

httpclient使用连接池来管理连接,这个时间就是从连接池获取连接的超时时间,可以想象下数据库连接池

ConnectTimeout

连接建立时间,三次握手完成时间

SocketTimeout

数据传输过程中数据包之间间隔的最大时间

下面重点说下SocketTimeout,比如有如下图所示的http请求

ConnectTimeout、ConnectionRequestTimeout、SocketTimeout的含义

 

虽然报文(“abc”)返回总共用了6秒,如果SocketTimeout设置成4秒,实际程序执行的时候是不会抛出java.net.SocketTimeoutException: Read timed out异常的。

因为SocketTimeout的值表示的是“a”、”b”、”c”这三个报文,每两个相邻的报文的间隔时间不能超过SocketTimeout。
---------------------
作者:BTLAS
来源:CSDN
原文:https://blog.csdn.net/btlas/article/details/53710854
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章:

  • 2022-01-17
  • 2021-08-23
  • 2021-09-29
  • 2021-09-08
  • 2022-01-30
  • 2022-03-04
  • 2021-05-28
  • 2021-12-18
猜你喜欢
  • 2022-12-23
  • 2021-10-12
  • 2021-10-13
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2021-12-06
相关资源
相似解决方案