Вопрос по ios, objective-c – Почему NSURLConnection не может достичь бэкэнда?

13

Я разрабатываю приложение с настраиваемым уровнем связи. Мои вспомогательные классы полагаются на NSURLConnection для обработки связи с бэкэндом.

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

Кроме того, когда приложение переходит в это состояние, Mixpanel (платформа отслеживания) регистрирует ошибку подключения, а также TestFlight.

Если вы закроете приложение и запустите Safari, вы все равно сможете связаться с google.com.

В настоящее время наше приложение не поддерживает многозадачность. Тем не менее, мы обнаружили, что TestFlight заставляет приложение «не завершаться».

Возможно ли, что из-за этого побочного эффекта библиотеки TF приложение переходит в несовместимое состояние ... в котором происходит сбой любого исходящего соединения ?.

У кого-нибудь возникла такая проблема?

Заранее спасибо!!

...

В качестве дополнительного примечания я хотел бы добавить, что серверная часть уже проверена (размещена на amazon), и, кажется, все в порядке.

=======

РЕДАКТИРОВАТЬ:

Сотрудники TestFlight только что подтвердили, что эта ошибка вызвана их библиотекой (у меня она есть с бета-версией TF 1.0).

Вы можете доказать на стороне сервера, что ответ отправляется? danh
Это ОЧЕНЬ случайная ошибка. Я провел 6 часов с Чарльзом Прокси между ними и не мог его вызвать. Пока что мой единственный намек на то, что Mixpanel AND TestFlight регистрируют ошибку подключения. Jorge Leandro Perez
Как вы отправляете NSURLConnection, sync или async? Вы звоните из основного потока, фонового потока или NSOperation, или что-то еще? Joseph DeCarlo
Это должно быть асинхронно. (Я инициализирую его следующим образом: [[NSURLConnection alloc] initWithRequest: _urlRequest делегат: self startImmediately: YES]). Я получил утверждения, чтобы предотвратить выполнение из фоновых потоков, на всякий случай. Там нет NSOperation. Раньше у меня был код безопасности потока для обработки пользовательской очереди (с использованием GCD), но я читал, что это не очень хорошая идея ... так что это первый тест, который я сделал, я прокомментировал код GCD. Так долго рассказ, главная нить, ничего странного. СПАСИБО..!! Jorge Leandro Perez
Попробуйте установить соединение и сразу же нажать кнопку «Домой». Если проблема связана с фоновым режимом, это единственный способ воспроизвести его. Costique

Ваш Ответ

2   ответа
8

которая приводит к тому, что NSURLConnection никогда не возвращает ни одного из своих асинхронных обратных вызовов (ошибка успеха / тайм-аута).

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Jorge Leandro Perez
Error: User Rate Limit Exceeded Jorge Leandro Perez
0
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Jorge Leandro Perez

Похожие вопросы