Какой самый простой способ сделать запрос HTTP GET с IOS 5? - PullRequest
4 голосов
/ 06 февраля 2012

Я пытаюсь отправить предложение из моего приложения в файл php на моем веб-сервере. Я протестировал скрипт php в своем браузере, который отправляет электронное письмо пользователю и сохраняет предложение в моей базе данных, и все работает нормально. .. И при выполнении следующего сценария я получаю успешное соединение через IOS, однако я не получаю результаты в моей базе данных ..

NSString *post = [NSString stringWithFormat:@"http://blahblah.com/suggest.php?s=%@&n=%@&e=%@", suggestion, name, email];

    // Create the request.
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:post]
                                              cachePolicy:NSURLRequestUseProtocolCachePolicy
                                          timeoutInterval:60.0];

    // create the connection with the request
    // and start loading the data
    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if (theConnection) {

        NSLog(@"Connection establisted successfully");

    } else {

        NSLog(@"Connection failed.");

    }

Я проверил все строки и закодировал все пробелы с% 20 и т. Д. Кто-нибудь может увидеть какие-либо очевидные причины, по которым мой скрипт не будет работать?

Какой самый простой способ сделать HTTP-запрос из моего приложения, не открывая Safari?

1 Ответ

7 голосов
/ 06 февраля 2012

Ваша проблема в том, что вы создаете соединение, но не отправляете фактический запрос "Соединиться".Вместо

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

попробуйте использовать этот фрагмент кода:

NSURLResponse* response = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil]

Это быстрое и грязное решение, но имейте в виду, что во время этого соединения ваш поток пользовательского интерфейса будеткажется замороженным.Обходной путь - использовать метод асинхронного соединения, который немного сложнее, чем выше.Поиск в сети для NSURLConnection отправляет асинхронный запрос - ответ есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...