2017-07-27 222 views
-1

我不知道如何發送curl -u節點js我嘗試下面的代碼,但沒有運氣。如何發送curl節點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 protected]" \ 
-d "FriendlyName=HostedNumberOrder1" \ 
-d "StatusCallbackUrl=http://example.com/callback" \ 
-d "StatusCallbackMethod=POST" \ 
-u 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token' 
+0

使用本:https://www.npmjs.com/package/twilio – btzr

+0

https://stackoverflow.com/questions/27944086/nodejs-request-module-doesnt-send-authorization-header – btzr

回答

1

Twilio API

Twilio支持HTTP基本和摘要式身份驗證。這使您可以在Web服務器上密碼保護您的TwiML URL,以便只有您和Twilio才能訪問它們。

參見:docs

請求:HTTP認證

摘要式身份驗證的支持,但它僅適用於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) 
}) 

請注意,您也可以使用URL本身指定的基本認證,在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 
}); 
+0

https://stackoverflow.com/a/15988737/6836839 – btzr