Node.JS:如何使用请求模块发送包含表单数据的标头 [英] Node.JS: How to send headers with form data using request module

查看:108
本文介绍了Node.JS:如何使用请求模块发送包含表单数据的标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有如下代码:

I have code like following

var req = require('request');

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

如何为此设置标题?
我需要用户代理,内容类型,可能还有其他的头文件:

How can I set headers for this? I need user-agent, content-type and probably smt else to be in headers:

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

我尝试了多种方式,但我可以发送标题或表单数据,发送失败

I've tried in multiple ways but I can either send header or form-data, failed to send both.

推荐答案

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

I've finally managed to do it. Answer in code snippet below:

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

这篇关于Node.JS:如何使用请求模块发送包含表单数据的标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆