Программное извлечение обновленного файла с сервера

#iphone #ios #webserver

#iPhone #iOS #веб-сервер

Вопрос:

У меня есть файл (XYZ.XXX), хранящийся на моем веб-сервере. У меня есть клиент iPhone, где пользователь может вводить некоторые данные. После ввода данных пользователь нажмет на кнопку Отправить. Я отправляю эти строковые данные на сервер. На сервере есть компонент для добавления этих данных в этот файл (XYZ.XXX). И сервер должен отправить обратно этот обновленный файл в мое приложение для iPhone. Каков был бы наилучший подход к программированию этого? У меня есть клиентское приложение, готовое без части связи. Я подумываю использовать метод http POST для отправки данных в виде запроса.

 NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];      
  

Мне нужно создать серверный компонент для получения этих данных и добавления с этим файлом (XYZ.XXX). Но как приложение iPhone может получить этот обновленный файл с сервера с тем же запросом? Должно ли мое приложение для iPhone запрашивать еще один раз, чтобы получить обновленный файл? (или) Может ли он получить обновленный файл с помощью самого первого запроса из самого ответа?

Пожалуйста, сообщите и внесите свой вклад.

Комментарии:

1. ОК. Что бы это ни было, мой ответ — это файл xyz.config, поэтому, когда я получаю ответ в виде файла .config, он должен иметь возможность автоматически загружать и запрашивать установку профиля, подобно тому, как мы загружаем файл .config, синхронизируемый вручную через USB-кабель. Возможно ли это?

Ответ №1:

Обычно вы хотите избежать синхронного запроса в главном потоке, поскольку это приведет к тому, что приложение будет выглядеть заблокированным для пользователя. Взгляните на документацию Apple по созданию NSURLConnection и использованию методов делегирования.

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEE

Комментарии:

1. Большое вам спасибо. Мой вопрос заключается в том, что ответ похож на файл, могу ли я загрузить файл непосредственно в ответе? «connectionDidFinishLoading» выдает полный ответ, но этот файл попадает в ответ в виде файла .config и должен быть установлен на устройство. Возможно ли это?

2. Вы можете использовать NSFileManager для сохранения файла на устройстве. developer.apple.com/library/mac/#documentation/Cocoa/Reference /…

3. Не могли бы вы, пожалуйста, объяснить немного больше? Почему я должен сохранять его на диске? Даже если я сохраню его на устройстве, могу ли я загрузить и установить файл .config?

4. «Установка файла» имеет значение только в контексте вашего приложения, вы можете обработать файл так, как вам необходимо. Синхронизация через USB поместит файлы в каталог документов по умолчанию для вашего пакета, вы можете добиться того же эффекта, сохранив файл с помощью NSFileManager

5. Привет, хорошо. Я попытался скопировать файл .config в каталог Documents. Но это просто копирование файла в каталог, вот и все. Он не выполняет автоматическую установку профиля конфигурации, подобно тому, как Safari загружает такие файлы.