以下代码行
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpResponse response2 = httpexecutor.execute(request2, conn, context);
log.info("Status Line "+response2.getStatusLine());
执行第二个语句时,我的请求/响应被代理阻止。如何调试这个。? 虽然从没有配置代理的本地环境执行相同的语句,但是能够看到 日志返回以下代码 “状态行HTTP / 1.1 200 OK”
答案 0 :(得分:0)
我认为你要找的是在请求上设置超时 - 基本上告诉执行者如果在一段时间内没有建立连接就放弃。
这篇SO文章涵盖了这一点:Java HTTP Client Request with defined timeout
接受的答案有关于Apache的实现有两个超时这一事实的重要信息 - 请务必阅读。
请注意,您无法真正区分由其他问题引起的连接失败 - 您只知道您的尝试超时了。在您对用户的回复中,您可能会说“无法连接到主机XXXXX。可能的原因是您的Internet连接断开,或者您有一个代理服务器阻止到该主机的出站连接。”