当前位置: 首页 > 面试题库 >

Node.JS:如何使用请求模块发送带有表单数据的标头

孔扬
2023-03-14
问题内容

我有如下代码:

var req = require('request');

req.post('someUrl',
   { form: { username: 'user', password: '', opaque: 'someValue', logintype: '1'}, },
   function (e, r, body) {
      console.log(body);
});

如何为此设置标题?我需要用户代理,内容类型以及标题中可能包含的其他内容:

headers = { 
   'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36',
   'Content-Type' : 'application/x-www-form-urlencoded' 
};

我已经尝试了多种方式,但是我可以发送标头或表单数据,但均不能发送。


问题答案:

我终于设法做到了。在下面的代码段中回答:

var querystring = require('querystring');
var request = require('request');

var form = {
    username: 'usr',
    password: 'pwd',
    opaque: 'opaque',
    logintype: '1'
};

var formData = querystring.stringify(form);
var contentLength = formData.length;

request({
    headers: {
      'Content-Length': contentLength,
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    uri: 'http://myUrl',
    body: formData,
    method: 'POST'
  }, function (err, res, body) {
    //it works!
  });


 类似资料:
  • 我有如下代码: 我如何设置标题?我需要用户代理、内容类型,可能还有其他一些东西在标题中: 我尝试了多种方法,但我可以发送标题或表单数据,但未能同时发送这两种数据。

  • 问题内容: 此模块是“请求https://github.com/mikeal/request 我想我正在遵循每个步骤,但我错过了一个论点。 另一方面,我有 而且我知道php没错… 问题答案: 编辑: 您应该签出Needle。它为您做到了这一点,并支持多部分数据,以及更多。 我发现我缺少标题

  • 如何用Python发送带有请求的?如何发送一个文件,我明白,但如何发送表单数据的方法不能理解。

  • 我试图使用带有模块的PasteBin API创建一个新的粘贴,如下所示: 我的理解是,由于方法是并且提供了querystring参数,对象中的值将作为对存储在正文中。(参考:如何在HTTP POST请求中发送参数?) 当发出请求并提供时,参数究竟是如何发送的? 如何仅使用模块发送URL编码的正文?

  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。