繁体   English   中英

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

[英]How to make RESTAPI calls in android using 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");

但它什么也没显示

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

您需要确定计算机的远程地址是什么。 只要您的Android设备位于同一网络上,LAN或WL​​AN就足够了。

另外,请确保防火墙设置允许访问您的计算机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM