--data-urlencode curl到nodeJS请求或表达模块

Ami*_*ine 9 curl node.js

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

curl '<url>' -X POST 
--data-urlencode 'To=<phone>' 
--data-urlencode 'From=<phone>' 
--data-urlencode "Body=<message>" 
-u <user>:<pass>
Run Code Online (Sandbox Code Playgroud)

进入这个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);
Run Code Online (Sandbox Code Playgroud)

我不知道如何在此代码的nodejs版本中添加--data-urlencode选项.有关我如何做到这一点的任何暗示?

Ber*_*tel 6

curl文档

--data-urlencode

(HTTP)与其他-d,--data选项类似,它发布数据,但是它执行URL编码。

因此,您可以使用formoption发送这样编码的表单URL:

var options = {
    url: 'url',
    method: 'POST',
    auth: {
        'user': 'user',
        'pass': 'pass'
    },
    form: {
        To: 'phone',
        From: 'phone',
        Body: 'message'
    },
    headers: {
        'Accept': '*/*'
    }
};
Run Code Online (Sandbox Code Playgroud)

请注意,您可以使用request-debug显示实际请求来检查正文:

To=phone&From=phone&Body=message
Run Code Online (Sandbox Code Playgroud)

并显示此处通过curl使用发送的实际数据,请使用--trace-ascii /dev/stdout

curl '<url>' -X POST --data-urlencode "Body=<message>" -u <user>:<pass>  --trace-ascii /dev/stdout
Run Code Online (Sandbox Code Playgroud)