Ошибка ASIHTTPRequest, код 2, на реальном iPad - PullRequest
4 голосов
/ 28 мая 2011

У меня есть программа, которая асинхронно загружает 4 файла в папку «Документы» ipad, и это прекрасно работает на симуляторе, но когда я использую его на реальном ipad, это выдает мне эту ошибку:

Error Domain=ASIHTTPRequestErrorDomain Code=2 "The request timed out" UserInfo=0x1c0810 {NSLocalizedDescription=The request timed out}

Есть ли способ исправить это или продлить время до истечения времени ожидания?

Ответы [ 2 ]

7 голосов
/ 28 мая 2011

Причина, по которой вы получаете лучшие результаты в симуляторе, возможно, в том, что симулятор использует встроенную сетевую карту, а сетевая карта вашего Mac, вероятно, сильнее, чем в iPad.

Вы можете использовать следующий код для изменения интервала времени ожидания. Этот код установит тайм-аут на двадцать секунд:

[request setTimeOutSeconds:20]

Согласно странице ASIHTTPRequest *1009*, вы можете указать ASIHTTPRequest повторить попытку N раз, например:

[request setNumberOfTimesToRetryOnTimeout:2];

EDIT:

Хотя сейчас 2016 год, а ASIHTTPRequest давно устарел, есть еще одна полезная информация, которая поможет диагностировать проблемы с сетью на устройствах iOS. Попробуйте использовать Network Link Conditioner. Он поставляется с iOS и может быть загружен на macOS.

Эта статья (ссылка) от NSHipster содержит отличную информацию о настройке.

0 голосов
/ 26 сентября 2012

Причина этой проблемы может быть следующая.Когда мы отправляем httprequest и не получаем ответ от сервера, но в это время вы отправляете еще один httprequest снова, и со вторым запросом ответ получен до первого запроса.

...