Кнопка приложения iPhone с методом URL POST - PullRequest
0 голосов
/ 25 июня 2010

Я хотел бы спросить о кнопке и способе публикации в приложении iPhone.

В моей программе я хочу, чтобы пользователь нажимал кнопку, и тогда метод POST будет вызывать URL. Для URL, возможно, потребуется перенаправить куда-нибудь (302 или 303) и т. Д., А финал равен 200.

У меня есть кнопка и страница успеха, но я не знаю, как использовать библиотеку Objective-C. Я нашел много ссылок на этот форум, но я не понимаю, что означает код. Кто-нибудь может мне помочь?

Следующий вопрос, на мой взгляд, связан с этим вопросом. Вызов URL-адреса сообщения http с iphone с помощью веб-службы .net

Большое спасибо.

1 Ответ

3 голосов
/ 25 июня 2010

Если вы в порядке с блокировкой потока, для которого вы делаете запрос, это примерно так же просто, как и получается.

NSString *postBody = [NSString stringWithFormat:@"param1=%@&param2", param1value, param2value];
NSData *postData = [postBody dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:targetURL];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];

NSURLResponse *response = nil;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

Несколько предостережений:

  • Это выполнит синхронный (блокирующий) запрос, поэтому либо выполните его в фоновом потоке, либо изучите методы делегата NSURLConnection.
  • Данные POST должны быть в кодировке URL, поэтому вам может потребоваться выполнить некоторую предварительную обработку значений параметров.
  • Перенаправления будут происходить автоматически до тех пор, пока не будет введено 200 OK или не возникнет ошибка.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...