我遇到apache http client (4.2.1)
连接超时问题,如果主机存在但没有及时响应,连接会因超时而关闭(一切都按预期),但如果没有这样的主机,客户端会保留等待时间超过预期(大约12秒而不是配置中指定的5秒)。最终会导致NoRouteToHostException,可能是因为特定的网络问题(当我试图在另一个网络中重现这个问题时,我在等待5秒后得到套接字读取超时异常,如预期的那样)。
我正在使用以下超时设置:
任何想法都表示赞赏。
如果有人遇到同样的问题,可能是由客户端执行的连接重试引起的。我解决问题时会更新这篇文章
最终我能够解决这个问题。问题是由DefaultHttpRequestHandler执行的连接重试引起的,如果没有显式指定请求重试处理程序,则由AbstractHttpClient(它是DefaultHttpClient的父级)使用。因此,如果您想要删除它,只需指定具有较少重试次数的请求重试处理程序
答案 0 :(得分:1)
最终我能够解决这个问题。问题是由DefaultHttpRequestHandler执行的连接重试引起的,如果没有显式指定请求重试处理程序,则由AbstractHttpClient(它是DefaultHttpClient的父级)使用。因此,如果您想要删除它,只需指定具有较少重试次数的请求重试处理程序