我不知道如何在节点js中发送curl -u我尝试以下代码但没有运气。
request({
url: "https://preview.twilio.com/HostedNumbers/HostedNumberOrders",
method: "POST",
json: true,
headers: {
"content-type": "application/json",
"Authorization": accountSid + authToken
},
json: {
"PhoneNumber": payload.phonenumber, "SmsCapability": true, "IsoCountry": payload.isocountry,
"AddressSid": address.sid, "Email": payload.email,
"FriendlyName": payload.friendlyname, "StatusCallbackUrl": "http://example.com/callback",
"StatusCallbackMethod": "POST",
},
}, function (error, response, body) {
res.json({ 'error': error, 'data': response, 'body': body });
return true;
})
这是我想要调用的卷曲。
curl -XPOST https://preview.twilio.com/HostedNumbers/HostedNumberOrders \
-d "PhoneNumber=+18312011484" \
-d "SmsCapability=true" \
-d "IsoCountry=US" \
-d "AddressSid=ADXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-d "Email=hostedsms@twilio.com" \
-d "FriendlyName=HostedNumberOrder1" \
-d "StatusCallbackUrl=http://example.com/callback" \
-d "StatusCallbackMethod=POST" \
-u 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token'
答案 0 :(得分:2)
Twilio支持HTTP基本和摘要式身份验证。这允许您在Web服务器上密码保护您的TwiML URL,以便只有您和Twilio可以访问它们。
请参阅:docs
支持摘要式身份验证,但它仅适用于sendImmediately设置为false;否则请求将在初始请求上发送基本身份验证,这可能会导致请求失败。
请参阅:docs
var options = {
url: 'https://preview.twilio.com/HostedNumbers/HostedNumberOrders',
auth: {
user: username,
password: password,
sendImmediately: true
}
}
request(options, function (err, res, body) {
if (err) {
console.dir(err)
return
}
console.dir('headers', res.headers)
console.dir('status code', res.statusCode)
console.dir(body)
})
请注意,您还可以使用网址本身指定基本身份验证,详见RFC 1738。只需在主机前面传递用户:密码,并带有@符号:
var username = 'username',
password = 'password',
url = 'http://' + username + ':' + password + '@some.server.com';
request({url: url}, function (error, response, body) {
// Do more stuff with 'body' here
});