最近公司在对接一家英国的服务商 接口地址为: https://XXX.app/API?testMode=1
在对接这家公司的api接口的时候遇到了一点问题,甚是头疼,现在就把经历记录下来
当我在调试他们接口的时候,优先使用样例数据和测试环境的地址使用postman进行post json 请求, 但是得到的结果是 {"result":"Invalid request - Empty request"} ,无论我如何改变参数,得到的结果永远都是
{"result":"Invalid request - Empty request"} 根据返回结果可以看出是说我的请求为空,没有数据,可是我明明传了参数呀
于是,开始跟老外不停的沟通,由于时差的造成这个问题耽搁了1-2天
第三天的时候 我就突发奇想用代码http手动请求一下试试, 果然,得到的错误变了
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>301 Moved Permanently</title></head><body><h1>Moved Permanently</h1><p>The document has moved <a href="http://XXXX.app/API/?testMode=1">here</a>.</p></body></html>
其中让人注意的部分当然是
301 Moved Permanently 和 <a href="http://XXXX.app/API/?testMode=1">
很显然, 是https://XXX.app/API?testMode=1这个地址已经被重定向了 而新的地址是 https://XXX.app/API/?testMode=1 这两个的差别是 API后面多了一个/
于是又多看了一眼文档,果然我的请求地址 少了 https://XXX.app/API?testMode=1 的API后面的/
使用https://XXX.app/API/?testMode=1 地址请求可以正常通了
那么问题来了 为什么postman 返回{"result":"Invalid request - Empty request"} ??
通过网络找到了答案
在用postman请求接口时,如果接口重定向到其它url,postman也会自动跳转到该url。如果想看到这个url,需要关闭自动重定向功能:
多一嘴: 而且重定向后 没有把参数传过去,所以我请求的接口返回的 Empty request
打开右上角的Settings设置界面,关闭Automatically follow redirects即可。
再次请求,不会自动跳转,在响应头的Location中看到重定向的url
设置postman结果来自 关闭 postman的重定向 - 测试一枚 - 博客园 (cnblogs.com)
总结出现301 的解决方案
检查url !!!
标签:postman,301,request,地址,API,testMode,Moved,重定向 From: https://www.cnblogs.com/loveCrane/p/16745222.html