我有以下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(){})
但是它的身份验证不正确。这是什么错误?
答案 0 :(得分:0)
您正在cURL
命令中使用HTTP Basic身份验证,其中username
和password
由-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
希望这会有所帮助!