【问题标题】:--data-urlencode curl to nodeJS request or express module--data-urlencode curl 到 nodeJS 请求或 express 模块
【发布时间】:2017-07-19 16:36:01
【问题描述】:

你好,我正在尝试转换这个 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 选项。 关于我如何做到这一点的任何提示?

【问题讨论】:

    标签: node.js curl


    【解决方案1】:

    来自curl documentation

    --data-urlencode

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

    所以你可以使用form 选项来发送这样编码的表单 URL:

    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
    

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      • 2018-05-04
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      相关资源
      最近更新 更多