我在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");
但它什么也没显示
答案 0 :(得分:2)
127.0.0.1是localhost的IP地址。从您的浏览器localhost解析到您的计算机,从您的Android设备localhost解析到您的Android设备,但您的节点应用程序没有在其上运行。
您需要弄清楚计算机的远程地址是什么。只要您与Android设备在同一网络上,LAN或WLAN就足够了。
还要确保防火墙设置允许访问您的计算机。