http请求的响应超时

时间:2017-07-25 07:35:16

标签: node.js httprequest electron httpresponse

我正在使用electron.js创建一个应用程序,我已经达到了一个需要发出http请求来调用php的地步。开始时的响应时间很短,应用程序在接收数据之前失败。然后我将timeOut放到HTTP路径上,以便服务器响应的等待时间增加。问题esque就好像timeOut不是,不等待指示的那个。

你知道解决这个问题的方法吗?

var http = require('http');
    var options = {
      timeout: 50000,
      host: localStorage.getItem('server'),
      port: localStorage.getItem('port'),
      path: localStorage.getItem('directori') + '?nosession=1&call=ciberFiSessio&numSerie='+ localStorage.getItem("pc")
    };
http.get(options, function(res) {
      alert("hola");
      if (res.statusCode  == 200){
        //reinicia();

        res.on('data', function (chunk) {
          str = chunk;
          alert(str);

          var myJSON = JSON.parse(str);
          //alert(myJSON.fi);

          if(parseInt(myJSON.fi)==0){
            alert("Hi ha hagut un problema!");
          }else{
            reinicia();
          }

        });

      }else{
        alert("El lloc ha caigut!");
        alert(res.statusCode);
      }
    }).on('error', function(e) {
      alert("Hi ha un error: " + e.message);
    });

1 个答案:

答案 0 :(得分:0)

使用node-fetch库,它支持更复杂的选项,也可以使用Promises,这是设计异步应用程序的现代方法。 https://www.npmjs.com/package/node-fetch

支持的选项(来自文档,包括timeout

{
    method: 'GET'
    , headers: {}        // request header. format {a:'1'} or {b:['1','2','3']}
    , redirect: 'follow' // set to `manual` to extract redirect headers, `error` to reject redirect
    , follow: 20         // maximum redirect count. 0 to not follow redirect
    , timeout: 0         // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies)
    , compress: true     // support gzip/deflate content encoding. false to disable
    , size: 0            // maximum response body size in bytes. 0 to disable
    , body: empty        // request body. can be a string, buffer, readable stream
    , agent: null        // http.Agent instance, allows custom proxy, certificate etc.
}