我曾使用这段代码发送一些http请求并获取数据,一切正常。最近我更新了apache、php和node到最新版本。
但是'close'事件停止触发了。我也尝试了'end'和'finish',但都不起作用。
我需要知道响应何时结束,以便我可以开始处理数据,通常响应会分成几个块。你们能帮忙吗?
var req = http.request(options, function(res) {
res.on('data', function (chunk) {
if(chunk != null && chunk != "") {
dataString += chunk; c
}
});
});
req.on('close', function () {
//tadaa it is finished, so we can process dataString
});
req.write(post_data);
req.end();
当前版本:Apache 2.4、PHP 5.4、Node 0.10.9
也许是 Apache 的某些特定配置设置阻止了它关闭连接?
P.S. 我不认为是 Apache 的问题,我尝试使用相同的结果访问 google.com,结果也很奇怪。有人有一个可行的代码示例吗?(加载大数据,并知道何时结束)
req.on('end')
之后添加req.on('data'...)
或调用req.resume()
。 - Andreas Hultgren