NSURLConnection не удается после обновления до iOS 5 - PullRequest
0 голосов
/ 16 октября 2011

У меня очень простой вызов NSURLConnection, который отлично работает во всех версиях iOS, кроме iOS 5. Поскольку это вызов sendSynchronousRequest, в приложении нет объявленных делегатов NSURL (ответ должен возвращаться непосредственно к этому методу).вызов).Кроме того, поскольку это sendSynchronousRequest, в приложении не реализовано никаких методов didReceiveData или других связанных с NSURL методов.

Вот строка кода, вызывающая проблемы:

NSData *response = [NSURLConnection sendSynchronousRequest: serviceRequest returningResponse:nil error:nil];

Когда япошагово просматривая код в отладчике, я могу подтвердить, что приложение отправляет запрос, а сервер получает запрос.Я также могу подтвердить, что сервер отправляет ответ клиенту.

Это все работало отлично, пока я не обновился до iOS 5. Теперь, после обновления до iOS5, переменная NSData (ответ) никогда ничего не получает и всегда возвращается с 0 байтами.

За исключением обновления до iOS5, никаких изменений кода не было вообще.

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

В iOS 5 было внесено несколько изменений в класс NSURLConnection. В частности, некоторые методы делегатов устарели.У меня возникла похожая проблема, и она была вызвана тем, что один из методов делегата больше не вызывался.Если это похоже на вашу проблему, взгляните на формальные протоколы делегатов NSURLConnectionDelegate и NSURLConnectionDataDelegate.

0 голосов
/ 24 октября 2011

У меня была такая же проблема при использовании пользовательского веб-сервера. Проблема оказалась неверным заголовком в ответе. Я изменил:

HTTP / 1.1 200 / OK

до:

HTTP / 1.1 200 OK

iOS 5 теперь принимает ответ. Проверьте ваш пакет захвата. У вас может быть такая же или похожая проблема.

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