2012-04-03 3 views
1

Я взял this code для создания веб-сервера sinatra и создал свою собственную версию Node.js с помощью express. Затем я получил this code для работы на iPhone для получения данных с сервера. Приложение iphone отправляет HTTP-запрос для '/sushi.json', и сервер обрабатывает это с помощью app.get('/sushi.json', function(request, response)). Затем сервер отправляет строку JSON обратно в приложение iOS, которое затем анализирует его в массиве, чтобы он мог использовать его.Отправка данных из приложения iPhone на веб-сервер Node.js

Но что делать, если я хочу отправить данные на сервер? В iPhone-приложении, как я буду строить и отправлять строку JSON, и как сервер будет следить за ней?

Кроме того, мне не нужно было использовать socket.io, чтобы заставить это работать. Это что-то, что нужно здесь использовать?

ответ

2

Нет, socket.io - это если вы хотите поддерживать постоянный поток между вашим сервером и клиентом. Основное использование этого - когда вам нужен ваш сервер, чтобы он мог передавать данные клиенту, а не клиенту, запрашивающему его.

Чтобы разместить некоторые JSON вы будете использовать один и тот же код, как и раньше, но создать объект запроса немного по-другому:

__autoreleasing NSError* error = nil; 
id result = [NSJSONSerialization JSONObjectWithData:data 
              options:kNilOptions error:&error]; 

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
                 result, @"my_json", nil]; 

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" 
              path:@"/myobject" parameters:params]; 

вы получите ваши данные на сервере с помощью

JSON.parse(request.params['my_json']) 
+0

Что такое HTTPClient? – neuromancer

+0

Нет параметров: метод в NSMutableURLRequest. – neuromancer

+0

Ниже я расскажу о более подробном объяснении, но httpClient - это экземпляр класса в библиотеке [AFNetworking] (https://github.com/afnetworking/afnetworking), которую вы используете. См. Ссылку и проверьте документы, вы можете понять это. Googling 'afnetworking send data to server' также должен помочь. –

Смежные вопросы