记录一个不是坑的坑
之前对接了一个API
,接口写好了自测的时候却出现了问题,发现接口调不通。
当时我是一个大写的懵圈 😲。
寻坑之路
- 使用
Postman
调用接口 正常返回数据。 - 开始怀疑自己代码写的有问题
- 用
Postman
选择自己用的request
包生成代码片段,复制到项目中调试,结果还是不通 😑 - 对比请求发现
Postman
的请求头中多了User-Agent
- 取消
Postman
中的User-Agent
,调用接口失败 - 发现了问题所在。
- 用
- 最后的最后问了一下对接方,原来是对接方对没有
User-Agent
的请求进行了拦截 GIAO
填坑
两种方案
更换使用的包:
换成了
nestjs
的HttpService
,调用接口成功。看了源码发现
HttpService
底层使用的是axios
,axios
判断了在headers
中是否存在User-Agent
,如果不存在添加自己的User-Agent
1
2
3
4
5
6// Set User-Agent (required by some servers)
// Only set header if it hasn't been set in config
// See https://github.com/axios/axios/issues/69
if (!headers["User-Agent"] && !headers["user-agent"]) {
headers["User-Agent"] = "axios/" + pkg.version;
}给原来的请求增加
User-Agent
在options
中的headers
添加User-Agent
(随便加就行)
#
简单记录一下这个不是坑的坑。