2017-02-28 10 views
3

こんにちは、私はこのカール文字列を変換しようとしています--data-でurlencodeカール

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

これはコード

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に私はどのように私ができる得ることはありませんこのコードのnodejsバージョンで--data-urlencodeオプションを追加してください。 どのように私はそれを行うかもしれないかについてのヒント? curl documentationから

答えて

3

--data-でurlencode

(HTTP) これはURLエンコードを行うことを除いて、このポストデータ、他の-dと同様、--dataオプション。

だからあなたは、このように符号化された形式のURLに送信するformオプションを使用します。あなたはその身体をチェックすることができ、実際の要求を表示するためにrequest-debugを使用することができます

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

注意することです:

To=phone&From=phone&Body=message 

実際にカールを使用して送信されたデータをhereと表示するには、--trace-ascii /dev/stdout

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