Apache HTTP - setSocketTimout vs setConnectTimout vs setConnectionRequestTimeout

时间:2016-08-31 17:58:39

标签: apache-httpclient-4.x

What is the difference between setSocketTimout, setConnectTimout and setConnectionRequestTimeout?

RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT)
            .setSocketTimeout(500)
            .setConnectTimeout(500)
            .setConnectionRequestTimeout(500)
            .build();

2 个答案:

答案 0 :(得分:5)

Connection timeout是在建立与服务器的连接之前的超时时间。

Socket timeout是接收数据的超时

然而,方法setConnectionRequestTimeout特定于配置连接管理器。它返回从连接管理器请求连接时使用的超时(以毫秒为单位)。超时值为零被解释为无限超时。

答案 1 :(得分:0)

ConnectTimeOut : - 指客户端等待与服务器建立连接的最长时间(以毫秒为单位)。在给定时间内服务器必须与客户端建立连接,否则它将抛出异常。

SocketTimeout : - 它定义了两个连续数据包之间的最大空闲/不活动时间(以毫秒为单位)。

请参阅javadocs了解更多详情