如何使用节点请求发送不记名令牌和 x-www-form-urlencoded 数据

How to send bearer token and x-www-form-urlencoded data using Node Request

我想使用节点模块 request 复制这个 Postman 调用。查看屏幕截图。

Screenshot

Screenshot2

如屏幕截图所示,在我的请求中,我需要传递 bearer token 以及 x-www-form-urlencoded 值。我尝试按照此 SO post 中的前 2 个答案进行操作,但没有成功。

我基本上都试过了

let form = {
    "field1": value1,
    "filed2": value2
};

let headers = {
    'Content-Type' : 'application/x-www-form-urlencoded',
    'Authorization': 'Bearer ' + token
}

request.post({ url: "https://myapp.net/myendpoint", form: form, headers: headers }, function(err, res, success){
    console.log(success);
});

还有

let form = {
    "field1": value1,
    "field2": value2
};

var formData = querystring.stringify(form);

let options = {
    uri: "https://myapp.net/myendpoint",
    method: 'POST',
    auth: {
        'bearer': token
    },
    headers: {
        'Content-Type' : 'application/x-www-form-urlencoded'
    },
    body: formData
};


request.post(options, function(err, res, success){
    console.log(success);
});

有人可以告诉我正确的方法吗?

编辑: 澄清一下:这些请求的结果是 400 状态。如果我发送 form-data,我也会在 Postman 上获得 400,但如果我发送 x-www-form-urlencoded,那么它会在邮递员中成功。我不知道如何按要求执行此操作。

试试这个

let options = {
    uri: "https://myapp.net/myendpoint",
    method: 'POST',
    headers: {
        'Authorization' : 'Bearer ' + token
    },
    form: {
        "field1": value1,
        "field2": value2
    };
};

request.post(options, function(err, res, success){
    console.log(success);
});

应该自动设置内容类型