//设置请求超时时间
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(2000)
.setConnectionRequestTimeout(2000)
.setSocketTimeout(2000)
.build();
说明
ConnectionRequestTimeout
httpclient使用连接池来管理连接,这个时间就是从连接池获取连接的超时时间,可以想象下数据库连接池
ConnectTimeout
连接建立时间,三次握手完成时间
SocketTimeout
数据传输过程中数据包之间间隔的最大时间
下面重点说下SocketTimeout,比如有如下图所示的http请求
虽然报文(“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
版权声明:本文为博主原创文章,转载请附上博文链接!