0

我正在使用库请求来发布数据,但即使我有一个“错误事件处理程序”,我也会不断收到错误ECONNRESET 。有时我的代码确实处理了错误,但是在 N 次(似乎 N 是随机的)之后它只是停止处理它并停止我的脚本。

我有一个循环:

request.defaults({'proxy': proxy}) 
request.post(url, {form:{data}})
 .on('error',    function(err) { if(err === 'ECONNRESET') { console.log('ECONNRESET') }});

N次后我得到

        throw er; // Unhandled 'error' event
        ^ Error: read ECONNRESET

我没有完全访问我发布数据的服务器的权限。我已经尝试过longjohn,但它似乎不起作用。

如果这是一个重复的问题,我很抱歉,但我找不到任何明确的答案:(

4

2 回答 2

2

似乎 .on('error', ...);在 N 次后无法捕获 ECONNRESET 所以解决 if (afaik now) 的唯一方法是使用process.on('uncaughtException', function(error) {})

我希望这对其他人有帮助:)

于 2020-05-16T21:19:14.773 回答
1

将您使用的所有代码包装request在一个try {}子句中,然后是

catch (error) {
  console.error (error)
}

从您在评论中写的内容来看,您的代理服务器似乎有问题。没有它你能提出请求吗?如果是这样,请尝试。

您也可以尝试使用调用的命令行程序curl来发出类似的请求。curl --verbose会喋喋不休地谈论它的作用,让你看到一些关于失败的细节。您没有向我们提供足够的信息来提供有关如何使用的详细建议curl。这可能有助于代理设置。使用 cURL 执行 HTTP 请求(使用 PROXY)

于 2020-05-15T17:37:50.940 回答