Node.js http请求没有结束

时间:2014-01-17 12:49:18

标签: javascript node.js http

我遇到了node.js http.request调用的问题。我想调用外部api(在我的情况下是Openstack api)。请求发送成功,我得到了响应,但是我的请求在收到响应后没有完成。相反,它等待大约2分钟,然后请求结束。什么时候从像Postman这样的REST客户端进行相同的REST调用,没有等待,一切运行良好。

这是我的代码,当我在/ auth URL上执行GET请求时调用该函数。

var options = {
    host: 'someIp',
    path: '/auth',
    method: 'GET',
    headers: {
        "Host":"auth.api.someIp",
        "X-Auth-User":"username",
        "X-Auth-Key":"key"
    }
};

var request = http.request(options, function(response){
    var body = ""
    response.on('data', function(data) {
        body += data;
    });
    response.on('end', function() {            
        console.log('response end')
    });
});
request.on('error', function(e) {
    console.log('Problem with request: ' + e.message);
});
request.on('end', function() {
    console.log('request end');
});

request.end();  

这是控制台日志:

响应结束 GET / auth 200 120080ms

我的问题是,当我使用node.js http.request执行此操作时,为什么请求不会结束?

1 个答案:

答案 0 :(得分:0)

尝试听完赛事。

request.on('finish', function() {
    console.log('request end');
});

请求是Incoming Message的实例。