我正在研究一个与API交互的项目,我的脚本在nodeJS中(这是一个很大的项目,所以我会给你一个非常简化的版本)
基本上,当我向邮递员发出对API的PUT请求时,它可以正常工作, 当我使用代码执行此操作时:GET可以很好地工作(因此我知道URL是正确的),但是PUT不能与我的脚本一起使用,我的控制台上没有任何错误,API会简单地返回OK状态,因此我不知道哪里出了错
这是我的脚本的非常基本的版本(也不起作用)
(我知道网址正确)
PUT参数:
{ method: 'PUT',
baseUrl: 'https://fusionrv.XXXX.XX/fusion/apiservice',
url:
'XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXX',
qs:
{ auth:
'AUTH_KEY',
value: 1 },
headers: { 'content-type': 'application/json' } }
简单代码(不导入):
request(putParams, (err, res) => {
if (err) console.log(err);
data = JSON.parse(res.body)
console.log(data)
});
在Postman中,我具有相同的baseURL和url,以及相同的参数“ auth”和“ value”,正文设置为“ none”,标头为Content-type: application/json
。
响应(在Postman和NodeJS中):
{
"Status": "Success"
}
那么有谁知道为什么它可以与邮递员一起使用,但不能与请求模块一起使用? 我感谢大家!
答案 0 :(得分:0)
发现问题出在API,我需要发出POST请求并使用其他URL来访问它,这是一个非常奇怪的API。
答案 1 :(得分:0)
添加用户代理作为标题的一部分
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'