我应该如何在http post请求的请求有效负载中传递json数据

Pra*_*ats 35 javascript json payload node.js

我想知道,如何在有效负载中传递json请求,例如{'name' : 'test', 'value' : 'test'}::

var post_data = {};

var post_options = {
  host: this._host,
  path: path,
  method: 'POST',
  headers: {
    Cookie: "session=" + session,
    'Content-Type': 'application/json',
    'Content-Length': post_data.length,
  }
};

// Set up the request
var post_req = http.request(post_options, function (res) {
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('========Response========: ' + chunk);
  });
});

// post the data
post_req.write(post_data);
post_req.end();
Run Code Online (Sandbox Code Playgroud)

Noa*_*oah 96

使用请求模块

npm install -S request

var request = require('request')

var postData = {
  name: 'test',
  value: 'test'
}

var url = 'https://www.example.com'
var options = {
  method: 'post',
  body: postData,
  json: true,
  url: url
}
request(options, function (err, res, body) {
  if (err) {
    console.error('error posting json: ', err)
    throw err
  }
  var headers = res.headers
  var statusCode = res.statusCode
  console.log('headers: ', headers)
  console.log('statusCode: ', statusCode)
  console.log('body: ', body)
})
Run Code Online (Sandbox Code Playgroud)

  • 我想在这里和你核实一下.'body:postData'是正确的还是postData应该被字符串化,如'body:JSON.stringify(postData); ?谢谢. (5认同)
  • @Ric通常你是对的,但添加`json:true`让请求知道它应该在发送之前对有效负载进行字符串化. (2认同)