首页 文章

apache http client:“无路由到主机”的连接超时

提问于
浏览
2

我有一个 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 回答

  • 1

    最终我能够解决这个问题 . 问题是由DefaultHttpRequestHandler执行的连接重试引起的,如果没有显式指定请求重试处理程序,则由AbstractHttpClient(它是DefaultHttpClient的父级)使用 . 因此,如果您想要摆脱它,只需使用较少的重试次数指定请求重试处理程序

相关问题