如何调试HttpRequestExecutor.execute(请求,连接,上下文);。?

时间:2013-08-29 04:34:14

标签: java httprequest httpresponse apache-httpclient-4.x

以下代码行

HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpResponse response2 = httpexecutor.execute(request2, conn, context);
log.info("Status Line "+response2.getStatusLine());

执行第二个语句时,我的请求/响应被代理阻止。如何调试这个。? 虽然从没有配置代理的本地环境执行相同的语句,但是能够看到 日志返回以下代码 “状态行HTTP / 1.1 200 OK”

1 个答案:

答案 0 :(得分:0)

我认为你要找的是在请求上设置超时 - 基本上告诉执行者如果在一段时间内没有建立连接就放弃。

这篇SO文章涵盖了这一点:Java HTTP Client Request with defined timeout

接受的答案有关于Apache的实现有两个超时这一事实的重要信息 - 请务必阅读。

请注意,您无法真正区分由其他问题引起的连接失败 - 您只知道您的尝试超时了。在您对用户的回复中,您可能会说“无法连接到主机XXXXX。可能的原因是您的Internet连接断开,或者您有一个代理服务器阻止到该主机的出站连接。”