API请求适用于邮递员,但不适用于Node.js(请求)

时间:2019-02-09 01:36:06

标签: javascript node.js api postman

我正在研究一个与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"
}

那么有谁知道为什么它可以与邮递员一起使用,但不能与请求模块一起使用? 我感谢大家!

2 个答案:

答案 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'