Как записать данные на веб-сервер из приложения iphone? - PullRequest
5 голосов
/ 02 декабря 2010

Я с нетерпением жду публикации некоторых данных и информации на веб-сервере через приложение iphone. нужна ваша помощь в этом. Я не могу отправить данные на веб-сервер с iphone SDK.

1 Ответ

15 голосов
/ 02 декабря 2010

Зависит от того, каким образом вы хотите отправлять данные на веб-сервер.Если вы хотите просто использовать метод HTTP POST, есть (как минимум) два варианта.Вы можете использовать синхронный или асинхронный NSURLRequest.Если вы хотите только публиковать данные и не должны ждать ответа от сервера, я настоятельно рекомендую асинхронный, поскольку он не блокирует пользовательский интерфейс.Т.е. он запускается «в фоновом режиме», и пользователь может продолжать использовать (то есть взаимодействовать) ваше приложение.Асинхронные запросы используют делегирование, чтобы сообщить приложению, что запрос был отправлен, отменен, выполнен и т. Д. При необходимости вы также можете получить ответ с помощью методов делегирования.

Вот пример асинхронного HTTP-запроса POST:

// define your form fields here:
NSString *content = @"field1=42&field2=Hello";

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.example.com/form.php"]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[content dataUsingEncoding:NSISOLatin1StringEncoding]];

// generates an autoreleased NSURLConnection
[NSURLConnection connectionWithRequest:request delegate:self];

Подробную информацию о методах делегатов см. В справочнике NSURLConnection .

Вы также можете отправить синхронный запрос после генерации запроса:

[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

Если вы передадите NSURLResponse ** в качестве возвращаемого ответа, вы найдете ответ сервера в объекте, на который указывает указатель.Имейте в виду, что пользовательский интерфейс будет блокироваться во время обработки синхронного запроса.

...