代码如下:
var agentReq = http.request(options, function (agentRes) {
var chunks = [];
if (agentRes.statusCode !== 200) {
failcb('[util] Failed to request url:' + url);
return;
}
var dataSize = 0;
//agentRes.setEncoding('binary'); // <--- 加上这行就会crash
agentRes.on('data', function (chunk) {
chunks.push(chunk);
dataSize += chunk.length;
});
agentRes.on('end', function () {
var fullData = Buffer.concat(chunks, dataSize);
fullData = aesDec(fullData);
fullData = jsonDec(fullData);
successcb(fullData);
});
});
agentReq.on('error', function (e) {
failcb(e.message);
});
if (dataObj) {
var sendData = jsonEnc(dataObj);
sendData = aesEnc(sendData);
agentReq.write(sendData);
}
agentReq.end();
此function在第2次call的时候抛出异常。
报错信息为buf.copy
^
,TypeError: Object (此处省略一大堆乱码)
但只要将标注的那行注释掉就正常了。问题原因不明。