我们服务器为了防止他人恶意爬虫和接口嗅探做了防盗链,拦截所有请求,如:查看请求头Referer是否为空,以及其它一些权限限制
,开发环境是debug模式,但测试环境是开启了权限认证以及防盗链的,导致做接口查询时一直不能通过。
google发现postman不支持用户在请求头中写入,但是支持代理模式,当用户开启代理模式即可在请求中写入被限制的头,如:
- Accept-Charset
- Accept-Encoding
- Access-Control-Request-Headers
- Access-Control-Request-Method
- Connection
- Content-Length
- Cookie
- Cookie 2
- Content-Transfer-Encoding
- Date
- Expect
- Host
- Keep-Alive
- Origin
- Referer
- TE
- Trailer
- Transfer-Encoding
- Upgrade
- User-Agent
- Via
详细资料:GitHub postman主页
官方文档说明大致意思是 设置一个代理,让代理服务器修改我们限制的request请求头,组装数据后用py请求数据,再将response返回postman,然后做tests测试。按照提示我按照了python3.6以及用到的库Twisted
这个有坑,由于历史原因,python2.7和3.6不能兼容,比如打印print就需要加括号(),而且win下使用脚本很是麻烦,最终的结果是这条路我做了一天没搞通,有没有其它思路?~~
既然是代理,我认为也可以自己用Java实现,将postman的请求全部发送到本地代理服务器上,本地代理组装好数据,加上request的请求头,发送请求到服务器上,将服务器的请求原样输出到postman。。。思路是没问题了,看下服务器端能否伪造referer。
未完待续
参考资料:
撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。