2017-02-28 31 views
3

你好我想改變這個捲曲串--data-進行urlencode捲曲要求的NodeJS或Express模塊​​

curl '<url>' -X POST 
--data-urlencode 'To=<phone>' 
--data-urlencode 'From=<phone>' 
--data-urlencode "Body=<message>" 
-u <user>:<pass> 

到這個代碼的NodeJS

var request = require('request'); 

var options = { 
    url: 'url', 
    method: 'POST', 
    auth: { 
     'user': 'user', 
     'pass': 'pass' 
    } 
}; 

function callback(error, response, body) { 
    if (!error && response.statusCode == 200) { 
     console.log(body); 
    } 
} 

request(options, callback); 

我不明白我怎麼能在此代碼的nodejs版本中添加--data-urlencode選項。 任何暗示我如何做到這一點?

回答

3

curl documentation來自:

--data-進行urlencode

(HTTP)該訊息的數據,與 ,這種執行網址編碼的例外類似於其它-d,--data選項。

,因此會使用form選項發送編碼像這種形式的網址:

var options = { 
    url: 'url', 
    method: 'POST', 
    auth: { 
     'user': 'user', 
     'pass': 'pass' 
    }, 
    form: { 
     To: 'phone', 
     From: 'phone', 
     Body: 'message' 
    }, 
    headers: { 
     'Accept': '*/*' 
    } 
}; 

注意,您可以使用request-debug顯示實際的請求,在那裏你可以檢查身體:

To=phone&From=phone&Body=message 

並且顯示通過curl使用發送的實際數據,如here所述,使用--trace-ascii /dev/stdout

curl '<url>' -X POST --data-urlencode "Body=<message>" -u <user>:<pass> --trace-ascii /dev/stdout