【发布时间】:2015-02-05 22:29:03
【问题描述】:
我正在开发一个 iPhone 应用程序,计划是每隔一段时间从应用程序向本地网络服务器发送一个 JSON 数据包。为此,我曾计划使用Alamofire。我的 POST 方法如下所示:
Alamofire.request(Alamofire.Method.POST, "http://XXX.XX.X.XX:3000/update", parameters: dictPoints, encoding: .JSON)
.responseJSON {(request, response, JSON, error) in
println(JSON)
}
IP 地址已标出,但我已确保它对应于我本地服务器的 IPv4 无线地址。服务器设置为监听 3000 端口。服务器配置如下所示:
var express = require('express');
var app = express();
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
console.log("MongoDB connection is open.");
});
// Mongoose Schema definition
var Schema = mongoose.Schema;
var LocationSchema = new Schema({
//some schema here
});
// Mongoose Model definition
var LocationsCollection = mongoose.model('locations', LocationSchema);
// URL management
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.get('/update', function (req, res) {
console.log("Got something from the phone!");
});
// Start the server
var server = app.listen(3000, function () {
var host = server.address().address
var port = server.address().port
console.log('App listening at %s:%s',host, port)
})
所以,这台服务器似乎工作正常。我可以在我的浏览器中测试它并输入 URL:http://127.0.0.1:3000,它会为我提供 index.html 文件。如果我输入http://127.0.0.1:3000/update...然后我会得到“从电话里拿东西!”信息。但是,当我运行我的应用程序(确保我的手机与服务器在同一个无线网络上)并且调用 Alamofire 方法时......我得到的响应是零。我也没有看到“从电话里得到了一些东西!”信息。谁能告诉我为什么会发生这种情况......或者更好的是,如何解决它?
【问题讨论】: