javascript - q-io/http.request 上的 ETIMEDOUT

标签 javascript node.js http q

使用 q-io/http 拉取网页失败。我想我一定错过了一些明显的东西——因为我认为这是一个非常简单的例子。

编辑:Windows 8, Node 11.13

var http = require('q-io/http')

var url =  'http://www.google.com' ;
http.request({
    method: 'GET',
    uri: url
}).
then(function (response) {
    console.log(response)
}).
fail(function (err) {
    console.error(err)
});

这是输出:

{ state: 'pending' }
> { [Error: connect ETIMEDOUT]
  stack: 'Error: connect ETIMEDOUT\n    at exports._errnoException (util.js:742:11)\n    at Object.afterConnect [as oncomplete] (net.js:989:19)',
  code: 'ETIMEDOUT',
  errno: 'ETIMEDOUT',
  syscall: 'connect' }

这与副本略有不同。 q-io/http 将在您阅读正文后关闭请求。阅读正文看起来在这里很重要。

最佳答案

将代码更改为:

var http = require('q-io/http')

var url =  'http://www.google.com' ;

results = qHttp.request({ url: url }).then(function(res){
    return res.body.read().then(function(bodyStream){
        var body = bodyStream.toString('UTF-8')
        return body
    })
})

访问响应正文看起来可以解决问题,我的假设是流在 q-io/http(包装 Node/http 库)的范围内关闭。我花了一些时间跟踪代码 - 但找不到 .end() 的确切路径

关于javascript - q-io/http.request 上的 ETIMEDOUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917711/

相关文章:

javascript - 与 Javascript 中的密码生成器苦苦挣扎。无法正确更改页面上的文本

javascript - Webpack vs webpack-dev-server vs webpack-dev-middleware vs webpack-hot-middleware vs etc

node.js - NodeJs Express 发送 403 并渲染

javascript - 实时更新 Node.js 服务器

c - 为什么我的 http 服务器打印出相同的字节? (C)

javascript - 为什么我无法访问 Chrome 内置函数 $?

javascript - 关于工厂函数概念的问题

javascript - 正则表达式匹配慢

http - 带有 golang 后端的 CORS 请求不起作用

java - 使用 httpClientBuilder 设置 httpVersion