如何使用node.js在android中进行REST API调用

时间:2014-08-14 06:55:52

标签: android json node.js

我在Node.js中创建了一个RESTAPI并尝试调用我的android应用程序。但是我无法向Node.js Rest API发出请求。

我的代码如下:

Node.js的

 var restify = require('restify');
 var request = require('request');
 var http    = require('http');
 var appContext = require('./config.js');

 function labsAPI(jsonparseStr) {
    return JSON.stringify(labsapi);
 }


 function searchbase(req, res, next){


    var options = {
        host: appContext.host,
        path: appContext.path+req.params.name+appContext.queryString
    };

   cbCallback = function(response) {
    var str = '';

    response.on('data', function (chunk) {
        str += chunk;
    });

    response.on('end', function () {
        jsonparseStr = JSON.parse(str);
        json_res = labsAPI(jsonparseStr);
        res.writeHead(200,{'Content-Type':'application/json'});
        res.end(json_res);
       });
   }
    http.request(options, cbCallback).end();
 }

  var server = restify.createServer({name:'crunchbase'});
  server.get('/search/:name',searchbase);

  server.listen(appContext.port, function() {
     console.log('%s listening at %s', server.name, server.url);
  });

运行我的代码之后:localhost:8084 / search / name

我能够将输出返回给浏览器一个有效的Json。

现在我想将这个Web服务应用到我的Android应用程序中,我无法弄清楚如何做到这一点。 我尝试了一些例子  http://hmkcode.com/android-parsing-json-data/

在上面的MainActivity.java博客中,我将我的网址改为

    new HttpAsyncTask().execute("http://127.0.0.1:8084/search/name");

但它什么也没显示

1 个答案:

答案 0 :(得分:2)

127.0.0.1是localhost的IP地址。从您的浏览器localhost解析到您的计算机,从您的Android设备localhost解析到您的Android设备,但您的​​节点应用程序没有在其上运行。

您需要弄清楚计算机的远程地址是什么。只要您与Android设备在同一网络上,LAN或WL​​AN就足够了。

还要确保防火墙设置允许访问您的计算机。