【发布时间】:2016-12-20 16:31:24
【问题描述】:
我正在尝试使用节点向外部 API 发出带有 JSON 有效负载的 POST 请求。
这是我的代码:
var express = require('express');
var bodyParser = require('body-parser');
var cors = require('cors');
var url = require("url");
var http = require("http");
var app = express();
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/api', function(req, res) {
var query = url.parse(req.url, true).query;
var key = query.key;
console.log('JSON PAYLOAD:');
console.log(req.body); **//PAYLOAD COMES THROUGH AS EXPECTED**
var options = {};
options = {
host: 'localhost',
port: 1234,
method: 'POST',
headers: {'Content-Type': 'application/json'},
path: '/api?key=1234'
};
var request = http.request(options, function(response) {
response.setEncoding('utf-8');
var responseString = '';
response.on('data', function(data) {
responseString += data;
});
response.on('end', function() {
var resultObject = JSON.parse(responseString);
res.json(resultObject);
});
});
request.on('error', function(e) {
});
request.write(req.body) **//THIS METHOD SHOULD BE FORWARDING THE PAYLOAD BUT THIS IS NOT THE CASE...**
request.end();
});
JSON 有效负载按预期从源端传入。但是我无法将此有效负载转发到外部 API。 'request.write(req.body)' 似乎是执行此操作的方法,但外部 API 仍在接收空负载。
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: javascript node.js http express