首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js:如何使用request模块发送带有表单数据的headers?

Node.js:如何使用request模块发送带有表单数据的headers?
EN

Stack Overflow用户
提问于 2013-06-15 16:53:27
回答 3查看 236.9K关注 0票数 119

我的代码如下所示:

代码语言:javascript
复制
var req = require('request');

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

我怎样才能为它设置头部?我需要user-agent,content-type,也许在头文件中还有其他东西:

代码语言:javascript
复制
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' 
};

我尝试了多种方法,但我可以发送标题或表单数据,但两者都失败了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-09 18:14:08

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

代码语言:javascript
复制
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!
  });
票数 203
EN

Stack Overflow用户

发布于 2013-06-16 03:15:47

这应该是可行的。

代码语言:javascript
复制
var url = 'http://<your_url_here>';
var headers = { 
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0',
    'Content-Type' : 'application/x-www-form-urlencoded' 
};
var form = { username: 'user', password: '', opaque: 'someValue', logintype: '1'};

request.post({ url: url, form: form, headers: headers }, function (e, r, body) {
    // your callback body
});
票数 55
EN

Stack Overflow用户

发布于 2019-11-22 02:07:34

只需记住在选项中设置方法为POST即可。以下是我的代码

代码语言:javascript
复制
var options = {
    url: 'http://www.example.com',
    method: 'POST', // Don't forget this line
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-MicrosoftAjax': 'Delta=true', // blah, blah, blah...
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36',
    },
    form: {
        'key-1':'value-1',
        'key-2':'value-2',
        ...
    }
};

//console.log('options:', options);

// Create request to get data
request(options, (err, response, body) => {
    if (err) {
        //console.log(err);
    } else {
        console.log('body:', body);
    }
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17121846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档