8

我正在使用这段代码发送一些 http 请求并获取数据,并且运行良好。我最近将 apache 和 php 以及 node.js 更新到了最新版本。

并且“关闭”事件停止触发。我还尝试了“结束”和“完成”,这些似乎都不起作用。

我需要知道响应何时结束,以便我可以开始处理数据,通常它分为几个块。你们能帮忙吗?

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 节点 0.10.9

也许 Apache 有一些特殊的配置设置会阻止它关闭连接?

PS我不认为它是Apache虽然..我尝试了google.com的相同结果..很奇怪...有人有工作代码示例吗?(加载大数据,知道什么时候结束)

4

1 回答 1

12

您应该等待end响应事件,而不是请求。

例如

res.on('end', function () {
    // now I can process the data
});
于 2013-06-03T13:31:55.790 回答