【发布时间】:2017-11-27 20:33:05
【问题描述】:
我正在尝试向需要 5 分钟以上响应的服务器发出 https 请求。在任何数据通过套接字传输之前约 7 分钟,请求完成约 11 分钟。使用 Curl 时请求工作正常,但使用 node.js 发出请求时出现此错误:
Error: { Error: read ECONNRESET
at exports._errnoException (util.js:1026:11)
at TLSWrap.onread (net.js:564:26) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
用于发出请求的代码:
const https = require('https');
https.get({
hostname: 'xxx',
path: 'xxx',
auth: 'xxx'
},
(res) => {
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
由于请求在恰好 5 分钟(300 秒)后失败,我猜可能存在某种超时,但我似乎无法找出是哪一个或它在哪里。也可能是服务器端超时,但奇怪的是它与 Curl 一起工作。。
【问题讨论】:
-
您是否尝试使用另一个模块,例如
request从另一个服务器获取数据? -
我还没有。会试一试,虽然我认为他们只是包装了 std https API.. 但我会试试看!
-
不。使用
request.. 时出现同样的错误 -
你是否通过请求设置了超时时间?
-
您是否尝试过更改用户代理?可能目标服务器正在阻塞 Node.js 但不是 curl。