Node.js 如何获得等效的nodejs Requst to CURL命令?
我有以下命令Node.js 如何获得等效的nodejs Requst to CURL命令?,node.js,curl,Node.js,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 opt
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(){})
但它并没有得到正确的认证。这里的错误是什么?您在
cURL
命令中使用HTTP基本身份验证,其中用户名
和密码
提供了-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(){})
请尝试在名为body
的属性中传递JSON对象,而不是data
(由于JSON:true
选项,它将转换为JSON字符串)
您可能还需要检查此选项:
希望这有帮助 您是否尝试从回调函数中获取日志:
function(err,res,body){if(err){return console.log(err);}console.log(body);}
此外,您是否可以尝试在名为body
的属性中发送JSON,而不是data
?例如:body:{“名字”:“Tonsdfasdy”,“种类”:“peasdfarson”,“联系人姓名”:“Staasdfadfadrk”}