无法使用Node.js从REST调用获取数据

时间:2014-07-18 04:12:25

标签: javascript json node.js rest

我正在从我的php和Node.js应用程序进行REST API调用,返回客户端提供的返回Json对象的特定URL。使用PHP可以正常工作。但是,我无法从节点应用程序接收数据?可能有人帮助我的原因是什么?

注意:出于安全原因,我已粘贴了一个虚拟REST URI

  1. 使用PHP工作正常我可以在几秒钟内获得json格式的数据。
  2.   

    $ response =   的file_get_contents( 'http://xyz.net/v2_resmgr/providers/pools');回声   $响应;

    1. 我使用node.js尝试相同的url我收到TimeOut错误。我也试过设置超时但它仍然无效。
    2.   

      var job = new CronJob({         cronTime:'0 * / 3 * * * *',         onTick:function(){

        url=   "http://xyznet/v2_resmgr/providers/pools"; 
      
      
          var request = http.get(url, function (response) {
      
            var buffer = "",
              data,
              route;
      
            response.on("data", function (chunk) {
              buffer += chunk;
            });
      
            response.on("end", function (err) {
            console.log(buffer);
      
          });
      
      request.setTimeout( 200000, function( ) {
          // handle timeout here
        console.log("Time Out call to the Rest API");
      });
      
            });
      
        },
        start: true
      
      });
      job.start();
      

1 个答案:

答案 0 :(得分:2)

我不知道这是否是您正在寻找的答案,但是当您使用'request'包时,生活会变得更轻松(https://www.npmjs.org/package/request

以下是使用请求模块的代码:

var request = require('request');
request('http://xyznet/v2_resmgr/providers/pools', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the body of the response.
  }
})

<小时/> 更新:我将某些内容编写得更接近您的帖子了。下面的代码不使用“请求”模块,它每隔3秒就与服务器联系。

setInterval(function () {
    http.get('http://echo.jsontest.com/key/value', function (response) {
        var responseBody = '';
        response.on('data', function (chunk) {
            responseBody += chunk;
        });
        response.on('end', function () {
            console.log(responseBody);
            var object = JSON.parse(responseBody)
        });
    });
}, 3000);