--data-urlencode curl to nodeJS request or express module

时间:2017-02-28 15:54:18

标签: node.js curl

您好我正在尝试转换此卷曲字符串

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选项。 有关我如何做到的任何暗示?

1 个答案:

答案 0 :(得分:4)

来自curl documentation

  

- data-urlencode

     

(HTTP)这会发布数据,类似于其他-d, - data选项   这是执行URL编码的例外。

因此,您可以使用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