var fs = require('fs');
var http = require('http');
var qs = require('querystring');
var util = require("util");
正在运行以下代码
events.js:72
throw er; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (http.js:1472:15)
at Socket.socketOnEnd [as onend] (http.js:1568:2
at Socket.g (events.js:175:14)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
码
var sendresult = function (result) {
console.log(result)
var post_data ={"result": result};
console.log(JSON.stringify(post_data))
var options = {
host: '172.16.2.107',
path: '/senddata',
port: '9080',
method: 'POST',
headers : {
'Content-Type': 'application/json',
'Content-Length': post_data.length
}
};
console.log("INSIDE-------------------------------------------------------")
var post_req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('Response: ' + chunk);
});
req.on('error', function (err) {
//handle error here
});
});
// post the data
post_req.write(post_data.toString());
post_req.end();
}
sendresult("dataaaaaaaaa")
我的代码有什么问题
答案 0 :(得分:0)
首先,post_data.length
不存在,因为post_data
不是字符串。
所以改变这个:
var post_data ={"result": result};
到此:
var post_data = JSON.stringify({"result": result});
如果Buffer.byteLength(post_data)
应包含utf8字符或类似内容,则post_data.length
应该Content-Length
而不是post_data
。 Buffer.byteLength()
始终计算字节数,而string.length
返回字符数,这可能并不总是与字节数相同。