javascript - Node.js http 请求未结束

标签 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 执行请求时请求没有结束?

最佳答案

嗯,尝试监听完成事件。

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

请求是Incoming Message的一个实例.

关于javascript - Node.js http 请求未结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21186449/

相关文章:

javascript - Node 类中的Memoizee实例方法

ajax - 来自 HTTP/REST 服务的进度通知

http.HandleFunc 每个请求调用根处理程序 3 次

javascript - 如何制作临时 HTML 并将数据克隆到其中?

javascript - 添加更多内容(例如图像)后,如何保持我的内容不从网格内部移动?

javascript - 加载重型 png 图像时的 Gif 加载器

javascript - 根据扩展名确定文件是图片还是视频不起作用

Node.js - 资源解释为脚本但使用 MIME 类型文本/纯文本传输

java - 在 Java 中使用 JSON 的 HTTP POST

javascript - 尝试运行 "node ."时出现语法错误如何修复?