您好,我在NodeJS上用一个更大的json对象数组执行HTTP请求时遇到了问题。在小型json对象数组中,该请求正常工作。但是,如果我尝试增加json数组的大小,我会收到错误消息:socket hang up {"error": {"code": "ECONNRESET"}}。是否需要执行多个写操作?还是因为另一端出现了什么问题?
提前感谢您在此花费时间!
// data is a json object
var post_data = JSON.stringify(data);
var buf = new Buffer(post_data);
var len = buf.length;
var options = {
hostname: address,
port: port,
path: pathName,
method: 'PUT',
headers: {
'Content-Type':'application/json',
'Content-Length': len,
'Transfer-Encoding':'chunked'
}
};
// http call to REST API server
var req = restHttp.request(options, function(res) {
console.log('server PUT response received.');
var resData = '';
res.on('data', function(replyData) {
// Check reply data for error.
console.log(replyData.toString('utf8'));
if(replyData !== 'undefined')
resData += replyData;
});
res.on('end', function() {
callback(JSON.parse(resData));
});
});
req.write(buf);
req.end();
buf
中的数据是可读流,则可以使用buf.pipe(req)
进行传输。例如,如果当前目录包含一个名为data.json
的文件,并且其中包含JSON数据,则可以使用var buf = fs.createReadStream(__dirname + '/data.json');
来创建一个ReadStream
对象。然后,您可以将其传输到您的请求中。 - Bulkan