Как я должен передавать данные json в полезной нагрузке запроса http post request

Я хотел бы знать, как передать запрос 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(); 

Использовать модуль запроса

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

Просто конвертируйте в строку и отправьте.

 post_req.write(JSON.stringify(post_data)); 

Я пробовал это и, похоже, работал. Мне нужен базовый auth, поэтому я включил auth, если вам это не нужно, вы можете отказаться от него.

 var value = {email:"",name:""}; var options = { url: 'http://localhost:8080/doc/', auth: { user: username, password: password }, method :"POST", json : value, }; request(options, function (err, res, body) { if (err) { console.dir(err) return } console.dir('headers', res.headers) console.dir('status code', res.statusCode) console.dir(body) });