and*_*yne 6 ios express alamofire
我正在开发一个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)
}
Run Code Online (Sandbox Code Playgroud)
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)
})
Run Code Online (Sandbox Code Playgroud)
所以,这台服务器似乎工作正常.我可以在浏览器中测试它并输入URL:http://127.0.0.1:3000,它将为我提供index.html文件.如果我输入http://127.0.0.1:3000/update ...那么我会得到"从电话里得到的东西!" 信息.但是,当我运行我的应用程序(确保我的手机与服务器在同一个无线网络上)并且Alamofire方法被调用时......我得到的响应为零.我也没有看到"从电话里得到的东西!" 信息.任何人都可以让我知道为什么会发生这种情况......或者更好的是,如何解决这个问题?
一些想法:
您正在POST
Alamofire 中创建请求,但您已告知Express处理GET
请求/update
.使用app.post(...)
,如果你要处理它作为一个POST
.
您的Alamofire代码正在寻找JSON响应,但您似乎没有创建JSON响应.在短期内,您可以使用responseString
而不是responseJSON
,但我认为您确实希望更改您的Web服务以使用JSON进行响应(以使应用程序更容易解析响应).
您的Alamofire代码发送JSON请求(但很明显,当您通过Web浏览器发送请求时,它不是JSON).您确定要发送JSON请求吗?(这不要与JSON响应问题混淆.)您是否想要使用.URL
编码类型参数,而不是.JSON
?
每当您有一个从Web浏览器而不是从应用程序正常工作的请求时,使用像Charles这样的工具来观察它们是有用的,然后您可以比较它们的不同之处并诊断不同行为的来源.
归档时间: |
|
查看次数: |
3236 次 |
最近记录: |