如何获得等效的nodejs Requst到CURL命令?

时间:2018-06-25 10:13:30

标签: node.js curl

我有以下CURL命令

curl -u YOUR_API_KEY:x \
 -H 'Content-Type: application/json' \
 -X POST \
 -d '{"first_name":"Tony", "kind":"person", "contact_name":"Stark"}' \
 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json'

我想使用请求模块在NodeJS中执行此请求。 这是我编写的代码。

var options = {
    uri: 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json',
    json: true,
    auth: {
      user: 'YOUR_API_KEY'
    }
    data: {"first_name" : "Tonsdfasdy", "kind":"peasdfarson", "contact_name":"Staasdfadfadrk"}
  }

request.post(options, function cb(){})

但是它的身份验证不正确。这是什么错误?

1 个答案:

答案 0 :(得分:0)

您正在cURL命令中使用HTTP Basic身份验证,其中usernamepassword-u选项提供,并由:分隔,因此您需要向代码提供密码,例如:

var options = {
  uri: 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json',
  json: true,
  auth: {
    user: 'YOUR_API_KEY',
    password: 'x'
  },
  body: {
    first_name : "Tonsdfasdy", kind:"peasdfarson", contact_name:"Staasdfadfadrk"
  }
}

request.post(options, function cb(){})

请尝试将JSON对象传递到名为body而不是data的属性中(由于使用了json: true选项,它将转换为JSON字符串)。

您可能还需要检查以下一项:how to do Auth in node.js client

希望这会有所帮助!