开发者社区> 问答> 正文

httpclient报错 The host did not accept the?报错



我遇到的这个问题是服务器现网日志中的,不是每次请求都报这个错。是否跟并发有关?

错误堆栈我贴在了下面。

我自己在本地模拟了一些异常情况:

因为是用的httpclient 3.1 ,我在本地自己写了测试类。

网上我查了下,说是设置的setConnectionTimeout()方法,指定连接超时时间。我不知道这个错误怎么出现了的。

我模拟了请求一个不存在的url,他报错是java.net.UnknownHostException: www.gofufu.com

我又模拟了一个存在但不能访问的url,就报我遇到的这个错。比如我访问www.facebook.com

我再模拟一个请求,这个请求在服务端睡眠1分钟,设置setSoTimeout(3000),报Read time out.

谁能解酒我

org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 15000 ms
        at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155)
        at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
        at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
       
 



展开
收起
爱吃鱼的程序员 2020-06-14 22:29:44 2474 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你用IP试试,不用域名。。。回复<aclass='referer'target='_blank'>@never_say:客户端出现这个问题,可能是你的负载均衡不那么可靠。。。。换成一个不存在的IP确实重现了,感谢!不过,我们的请求地址是双机,没有宕机的记录。这个请求为什么失败呢?网断了

    2020-06-14 22:30:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载