记录一次在生产环境使用httpclient的问题

1.背景

项目中需要调用第三方的一些接口,比如说移动的短信什么的,在开发和测试环境中,并没有出现什么问题,然后当项目部署到预发布环境后,却被告知短信发送不出去,于是马上连接服务器,苦逼的查看日志,也没用多久,就发现了第三方接口调用的时候出现了time out,找到了报错信息,于是遍开始排查问题,首先怀疑的是服务器访问不通外网,遂执行curl “https://www.baidu.com”,发现成功返回了百度的html文本,证明服务器是能访问通外网的,但是我还是觉得有问题,遂执行了ping www.baidu.com,后发现,time out !问题就出现在这里,为什么呢,为什么curl能成功,ping和java 的httpclient都time out呢?
**

2.再次排查

**
通过上述的操作,我觉得可能是因为curl和httpclient有什么区别吧,遂百度了一下curl和httpclient的区别,
后发现这篇文章:https://blog.csdn.net/kakaweb/article/details/106961010
看完后,赶紧远程服务器,执行curl -i后果然发现正式地址是通过代理才能访问外网的,而java httpclient默认不走代理,随即修改代码,手动配置上代理,发版,测试,ok下班回家!!!

上一篇:Linux下如何在不解压jar包查看或修改配置文件


下一篇:Excel理解神经网络中的误差反向传播