我有一个 apache http client (4.2.1)
连接超时问题,如果主机存在但没有及时响应,连接将被超时关闭(一切都按预期),但如果没有这样的主机,客户端等待的时间比预期的要长(约12个)秒而不是配置中指定的5) . 最终会导致NoRouteToHostException,可能是因为特定的网络问题(当我试图在另一个网络中重现这个问题时,我使用以下超时设置:'ve got socket read timeout exception after 5 sec of waiting, as expected). I'm):
-
http.socket.timeout = 5秒
-
http.connection.timeout = 5秒
任何想法都表示赞赏 .
更新
如果有人遇到同样的问题,可能是由客户端执行的连接重试引起的 . 我解决问题时会更新这篇文章
Update2
最终我能够解决这个问题 . 问题是由DefaultHttpRequestHandler执行的连接重试引起的,如果没有显式指定请求重试处理程序,则由AbstractHttpClient(它是DefaultHttpClient的父级)使用 . 因此,如果您想要摆脱它,只需使用较少的重试次数指定请求重试处理程序
1 回答
最终我能够解决这个问题 . 问题是由DefaultHttpRequestHandler执行的连接重试引起的,如果没有显式指定请求重试处理程序,则由AbstractHttpClient(它是DefaultHttpClient的父级)使用 . 因此,如果您想要摆脱它,只需使用较少的重试次数指定请求重试处理程序