1. ホーム
  2. node.js

[解決済み] Node.js: requestモジュールでヘッダーとフォームデータを送信するには?

2022-08-25 21:59:30

質問

以下のようなコードを持っています。

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とおそらく他の何かがヘッダにある必要があります。

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