Apache HTTP - setSocketTimout vs setConnectTimout vs setConnectionRequestTimeout Apache HTTP中的setSocketTimout、setConnectTimout和setConnectionRequestTimeout有什么区别?

8

setSocketTimeoutsetConnectTimeoutsetConnectionRequestTimeout有什么区别?

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

你最终使用了什么?500毫秒的套接字超时似乎有点极端,如果网络很慢怎么办? - Christophe Roussy
2个回答

12

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

套接字超时是接收数据的超时时间。

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


1
一个典型的应用程序,500毫秒似乎有点短。你会用什么? - Christophe Roussy

0

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

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

请参阅javadocs获取更多详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接