【问题标题】:Where set timeout with post request using request package in nodejs在nodejs中使用请求包设置超时与发布请求
【发布时间】:2017-03-16 16:45:28
【问题描述】:

我正在使用 request 包发出帖子请求。请求时如何设置超时 500 毫秒。

var request = require('request');

request({
      url: 'myUrl',
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'authToken': 'myToken'
      },
      timeout: 500,
      json: infoObj
    })
      .on('response', function(response) {
        console.log('request response=============',response.statusCode)

      })
      .on('error', function(err) {
          console.log('error===',err);
      });

当尝试使用 timeout: 500 时,上面的例子出错了

{ 错误:ETIMEDOUT 在 Timeout._onTimeout (F:\gomean\globeone\node_modules\request\request.js:796:17) 在 tryOnTimeout (timers.js:224:11) 在 Timer.listOnTimeout (timers.js:198:5) 代码:'ETIMEDOUT',连接:true }

【问题讨论】:

  • 你能告诉我们你想达到什么目标吗?
  • 我尝试过的更新问题
  • 您的错误看起来就像您收到未处理的超时错误时所得到的。我在您的代码中没有看到任何会捕获错误的错误处理程序,包括超时错误。
  • 节点引擎版本?

标签: javascript node.js request timeout


【解决方案1】:

您需要包含一个回调来捕获错误。来自the documentation

您可以通过检查 err.code 中的“ETIMEDOUT”值来检测超时错误。此外,您可以通过检查 err.connect 属性是否设置为 true 来检测超时是否为连接超时。

还有一个例子:

request.get('http://10.255.255.1', {timeout: 1500}, function(err) {
    console.log(err.code === 'ETIMEDOUT');
    // Set to `true` if the timeout was a connection timeout, `false` or
    // `undefined` otherwise.
    console.log(err.connect === true);
    process.exit(0);
});

【讨论】:

    【解决方案2】:

    请求文件: timeout - 包含在中止请求之前等待服务器发送响应标头(并启动响应正文)的毫秒数。

    var request = require('request');
    
    request({
          url: 'myUrl',
          method: 'POST',
    
          timeout: 500,
    
          headers: {
            'Content-Type': 'application/json',
            'authToken': 'myToken'
          },
          json: infoObj
        })
          .on('response', function(response) {
            console.log('request response=============',response.statusCode)
    
          })
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2018-05-04
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多