文章目录
- 问题概述
- Apifox查看实际请求
- 总结
问题概述
开发中有一个需求需要去别的系统中拿数据,配置好相关参数后发起请求时发现响应结果和在Apifox上不同,Apifox上正常显示数据,而本地调用后返回数据不存在。
这就很奇怪了,想了很多可能,比如入参传错了,没有在请求体中存放json发送请求后(自己还专门写了一个接口接数据发现没问题),最后排查到请求头,将Apifox上的实际请求一一对照,发现是少了Accept: * / * ,问题解决。
Apifox查看实际请求
总结
一般来说,接口只要接口调试工具或者浏览器能请求通,那么可以排除是接口提供方的问题。
而请求接口出现的问题大多数是请求头Header的问题,这类问题的主要解决思路就是调整请求头中的参数值,大致如下:
Accept:* / *
Host:xxx.xxx.xxx.xxx如果需要请指定服务的域名或者IP地址
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Content-Type:application/json;charset=UTF-8或者将charset=UTF-8取掉
Connection:keep-alive
还有一种可能是请求url中存在中文,因为测试工具和浏览器在转发请求的时候按照HTTP协议把参数进行了encode编码,而本地访问请求接口时未进行编码,这时就需要在访问接口前进行encode编码。