当前位置: 首页 > 知识库问答 >
问题:

如何使用节点请求发送承载令牌和x-www-form-Url编码数据

赵英资
2023-03-14

我想使用节点模块请求复制此邮递员呼叫。请参见屏幕截图。

截图

截图2

如屏幕截图所示,在我的请求中,我需要传递一个承载令牌以及x-wow-form-urlencoded值。我试着按照这篇SO帖子的前两个答案,但没有成功。

我基本上已经试过了

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-wow-form-urlencoded,那么它在postman上就会成功。我不知道如何根据要求做这件事。

共有1个答案

柯波娃
2023-03-14

试试这个

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);
});

应自动设置内容类型

 类似资料:
  • 在java中,如何使用。我不明白如何发送带有键值的正文,如上面的屏幕截图所示。 我尝试过以下代码: 但是在回复中,我没有收到正确的数据。

  • 我在研究Xamarin。Android应用。我必须使用内容类型为x-www-form-urlencoded的rest API。我无法成功调用Rest API,在此之前,我使用了许多web服务,但我第一次使用这种类型的API。我被困在这里面了。我尝试了两种方法来消耗它: 下一个问题是:

  • 我有一个api要求在标题中发送以下参数- 内容类型-应用程序/x-www. form-urlencoded AuthKey-(会话令牌) 以及正文中的以下参数(表单日,即键值对) storeId-1 类型-产品 类别ID-324 但是每当我点击这个api,我总是得到401(未授权)错误。我已经尝试使用MultipartRequest正文和formBody,我知道这与正文无关(它的头,我需要发送内容

  • 我可以使用类似的代码和承载令牌进行GET,但似乎无法完成POST。 当我将Json、URL和承载令牌复制/粘贴到Postman中时,效果非常好。但从C#执行此操作时,会出现以下错误: “状态代码:400,原因短语:'错误请求',版本:1.1,内容:System.Net.Http.StreamContent,标题:{传输编码:分块连接:保持活动预期CT:最大年龄=604800,报告uri=”http

  • 我是一个新的API测试与乱七八糟的问题。我的jmeter url:http://ip:8080/servelet?token=toekntext 响应r=给定()。contentType(内容类型)。接受(内容)。标题(“用户代理”,web)。queryParam(“令牌”,令牌文本)。queryParam(“methodname”,jsonttext)。expect()。状态代码(200)。wh

  • 我试图使用以下客户端代码调用REST服务,目的是发送一些字符串消息详细信息以及附件文件: 我的目标服务器接受Base64编码的内容,这就是为什么额外的从文件传输到ByteArray的原因。 此外,我发现类com.sun.jersey.core.impl.provider.entity.FormProvider用于生产和消费“x-www-form-urlencoded”请求。 但我还是得出了以下结论