Запрос времени ожидания в iOS GET API - PullRequest
0 голосов
/ 12 марта 2019

У меня есть приложение для iOS, где я вызываю один и тот же API слишком много раз в цикле. а именно Сначала вызовите API -> Получить ответ, проанализируйте его -> сохранить в локальном -> Снова вызвать тот же API ... и так далее. Так и в этом потоке. Где-то случайно запрос получает время ожидания, и я получаю следующие журналы:

 Task <E49E4BD3-882E-4FFE-A6E1-75E28102CC20>.<7> load failed with error 
 Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." 
UserInfo={_kCFStreamErrorCodeKey=-2102, 
NSUnderlyingError=0x600000f28ed0 {Error Domain=kCFErrorDomainCFNetwork 
Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, 
_kCFStreamErrorDomainKey=4}}, 
_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <E49E4BD3-882E- 
4FFE-A6E1-75E28102CC20>.<7>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <E49E4BD3-882E-4FFE-A6E1-75E28102CC20>.<7>"
), NSLocalizedDescription=The request timed out., 
NSErrorFailingURLStringKey=https://api.domainname.com/getDataApi, 
NSErrorFailingURLKey=https://api.domainname.com/getDataApi, 
_kCFStreamErrorDomainKey=4} [-1001]

Работает правильно много раз. Заголовки и параметры верны. Я попытался поместить этот запрос в NSOperationQueue, группа рассылки. Но это работает так же. Я также пробовал с NSURLSession вместо Alamofire. Без изменений. Это часто случается на iPhone X и редко на других устройствах. Я вызываю API слишком много раз, потому что данные составляют около 30-40 тысяч записей, и каждый API возвращает 1000 записей. Иногда первый API дает сбой, иногда после нескольких попаданий. Это случайно. Интернет-соединение хорошо во время сбоя. Потоковое, просмотр работает отлично в то же время. Но API дает время ожидания запроса. Попытка увеличения интервала ожидания для запроса. Там нет проблем с параметрами / заголовками, которые я отправляю, потому что один и тот же API-интерфейс работает нормально иногда и иногда не работает. Возвращенные данные также одинаковы для всех устройств.

...