iPhone 앱을 개발 중이며 앱에서 로컬 웹 서버로 JSON 패킷을 전송하는 것이 좋습니다. 이렇게하려면 Alamofire을 사용할 계획이었습니다. 내 POST 방법은 다음과 같습니다로컬 웹 서버에 대한 Alamofire http 요청
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 메서드가 호출되면 ... 내가받는 응답은 0입니다. 나는 또한 "전화에서 뭔가를 얻었습니다!" 메시지. 아무도 내가 왜 그런 일이 일어날 지 알려주지 않겠습니까? 아니면 더 나은 방법, 그것을 고치는 방법을 알려주십시오.
예. 이상적으로, 패키지가 제대로 처리되었다는 것을 알리기 위해 적절한 응답을 보내 드리겠습니다 ... 그러나 console.log 메시지에 전화기에서 무엇인가를 받았다고해서는 안됩니까? 지금 당장은 전화로 보낸 메시지가 전화로 등록되었는지 여부를 확인하려고합니다. (메시지를 파싱하고 적절한 응답을 보낼 수 있습니다.) – andyopayne
Alamofire 함수를'.responseJSON' 대신'.responseString'을 사용하도록 변경했고, 돌아 오는 메시지는 다음과 같습니다 :'Optional ("POST/update \ n")'.또한이 작업을 수행 할 때 Charles도 사용하고 있었고 로그에 아무런 활동도 표시되지 않았습니다 (컴퓨터의 웹 서버에 IP 주소를 입력했을 때 기록을 보았습니다). Alamofire의 응답이 의미하는 바가 무엇이며, 왜 그 주소에 게시되지 않는지 아십니까? – andyopayne
@andyopayne 아마도 'app.get' 참조입니다. '/ update'에 대한'POST' 요청을 처리하고 싶다면'app.post'가 될까요? – Rob