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 deFinitionvar Schema = mongoose.Schema;var LocationSchema = new Schema({ //some schema here});// Mongoose Model deFinitionvar LocationsCollection = mongoose.model('locations',LocationSchema);// URL managementapp.get('/',function (req,res) { res.sendfile(__dirname + '/index.HTML');});app.get('/update',res) { console.log("Got something from the phone!");});// Start the servervar 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方法被调用时……我得到的响应为零.我也没有看到“从电话里得到的东西!”信息.任何人都可以让我知道为什么会发生这种情况……或者更好的是,如何解决这个问题?
解决方法 一些想法:>您正在Alamofire中创建POST请求,但您已告知Express处理GET请求/更新.如果要将其作为POST处理,请使用app.post(…).
>您的Alamofire代码正在寻找JsON响应,但您似乎没有创建JsON响应.在短期内,您可以使用responseString而不是responseJsON,但我认为您确实希望更改您的Web服务以使用JsON进行响应(以使应用程序更容易解析响应).
>您的Alamofire代码发送JsON请求(但很明显,当您通过Web浏览器发送请求时,它不是JsON).您确定要发送JsON请求吗? (这不应与JsON响应问题混淆.)您是否要使用.URL编码类型参数,而不是.JsON?
>只要您的请求在Web浏览器中正常运行,而不是从应用程序运行,使用Charles之类的工具观察两者都很有用,然后您可以比较它们的不同之处并诊断不同行为的来源.
以上是内存溢出为你收集整理的ios – Alamofire http请求到本地网络服务器全部内容,希望文章能够帮你解决ios – Alamofire http请求到本地网络服务器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)