我想对我的电脑中另一个端口上运行的REST API进行POST调用。 http.get方法工作正常,但是当我发出POST请求时,服务器在回调中没有返回任何响应或任何错误。这是我的代码:
server.route({
method:'POST',
path:'/path1',
handler: function(req, res){
var post_data = querystring.stringify({
'name': 'asd',
'price': '123'
});
var options = {
host: '127.0.0.1',
port: 2000,
path: '/apipath',
method:'POST',
header:{
'Content-Type':'application/json',
'Content-Length': Buffer.byteLength(post_data)
}
};
var post_req = http.request(options, function(reply){
console.log('222');
reply.setEncoding('utf8');
reply.on('data', function (body) {
console.log('Body: ' + body);
});
post_req.write(post_data);
post_req.end();
res(reply);
post_req.on('error', function(e) {
console.error(e);
});
});
}
});
答案 0 :(得分:0)
您无法看到任何错误或响应,因为您正在传输响应并在http.request()中结束请求,因为它应该像这样...
...
...
...
var post_req = http.request(options, function(reply){
console.log('222');
reply.setEncoding('utf8');
reply.on('data', function (body) {
console.log('Body: ' + body);
});
});
post_req.on('error', function(e) {
console.error(e);
});
post_req.write(post_data);
post_req.end();
...
...
正如评论中所说,你有其他模块用于在hapi中发出http请求