Post

httpclient请求接口失败

这几天开发一个爬虫, 发现一个比较扯的问题。

由于服务器和开发机器网络不通,所以使用了nginx做了反向代理。 开发机器访问nginx 。

做的功能很简单,就是一个session保活(就是每隔10分钟请求一个固定的url,探测session是否还有效)。

在自己的电脑上调试通过,于是满怀信心的部署到服务器上,当然请求链接也是切换到直接访问目标服务器,但是一请求就懵逼了,服务器响应失败。

特麽在自己的电脑上尝试的好好的(自己电脑上访问的跳板机的nginx),为啥一切换就不行呢?

第一个想法是打的包有问题,遂重新打包,然并卵。

第二个想法肯定是想用第三方工具试试,下载了curl。 在所有参数都相同的情况下,请求nginx代理就能成功, 直接请求就失败。 此时更懵逼了

到这里只能祭出杀器:抓包, 使用fiddler, 抓包一看。请求成功的使用http1.0, 失败的使用http1.1

到这里已经真相大白了, 默认工具使用http1.1协议请求, 所以失败。 切换到1.0就好了。

每天上一当,当当不一样。

This post is licensed under CC BY 4.0 by the author.