根据Apache文档,其套接字上使用的2次超时如下:
CoreConnectionPNames.SO_TIMEOUT ='http.socket.timeout':定义套接字超时(SO_TIMEOUT),以毫秒为单位,即等待数据的超时,换句话说,两个连续数据包之间的最大周期不活动。超时值为零被解释为无限超时。此参数需要java.lang.Integer类型的值。如果未设置此参数,则读取操作不会超时(无限超时)。
CoreConnectionPNames.CONNECTION_TIMEOUT ='http.connection.timeout':确定建立连接之前的超时(以毫秒为单位)。超时值为零被解释为无限超时。此参数需要java.lang.Integer类型的值。如果未设置此参数,则连接操作不会超时(无限超时)。
假设我将两者都设置为5秒。 如果我在慢速服务器上执行HTTP GET请求,则会发生以下情况: 连接在5s内完成。 (未触发CONNECTION_TIMEOUT) IP数据包持续滴流说每4秒(SO_TIMEOUT不被触发) 但是,我的HTTP GET或PUT可能需要几分钟才能有效完成。 有没有办法为我的整体GET或PUT请求设置超时,以便我可以通知用户和/或放弃。