Превышено время ожидания запроса с кодом

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x608000244a70 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://www.dfdd, NSErrorFailingURLKey=http://www.dfdd.com, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

Я получаю этот ответ, вызывающий МОЙ API. Я использую alamofire для вызова API. Есть ли какие-либо проблемы в alamofire или локальном API


person Amutha Kumari    schedule 15.06.2017    source источник
comment
нет, не так, как это произойдет со многими сценариями   -  person Anbu.Karthik    schedule 15.06.2017
comment
Как найти решение, чтобы преодолеть это   -  person Amutha Kumari    schedule 15.06.2017
comment
например, если ваше сетевое соединение низкое или ваши данные имеют большой вес в это время, это будет происходить в основном   -  person Anbu.Karthik    schedule 15.06.2017
comment
Хорошо .. еще кое-что   -  person Amutha Kumari    schedule 15.06.2017
comment
если серверу требуется больше времени, чтобы ответить на ваш запрос, в то время, когда он поднимет   -  person Dharma    schedule 15.06.2017
comment
может быть сервер повторно запускает тяжелые данные также в то время, когда это произойдет   -  person Anbu.Karthik    schedule 15.06.2017
comment
ОК ... спасибо всем за твои ответы   -  person Amutha Kumari    schedule 15.06.2017


Ответы (2)


У вас есть следующее решение.

  1. Подключитесь к быстрому интернет-соединению, потому что ваш запрос содержит большие объемы данных.
  2. Установить тайм-аут запроса для диспетчера сеансов

    manager.session.configuration.timeoutIntervalForRequest = 120

person KKRocks    schedule 15.06.2017
comment
используйте этот timeoutIntervalForRequest = 120 вариант bz, если вы использовали свой API в основном потоке, он влияет на другие потоки также при задержке - person Anbu.Karthik; 15.06.2017
comment
также установите интервал для timeoutIntervalForResource при получении тяжелых данных. - person Dharma; 15.06.2017
comment
@KKRocks можно ли установить в диспетчере Alamofire .session.configuration.timeoutIntervalForRequest = 120 - person Amutha Kumari; 15.06.2017
comment
@KKRocks .. В alamofire перед вызовом api я установил timeoutIntervalFor Request .. но столкнулся с той же проблемой ... вот мой код - person Amutha Kumari; 16.06.2017
comment
func requestDELETEData (urlString: String, parameterToBePassed: inout Dictionary ‹String, AnyObject›, завершение: @escaping (_ resultDictionary: Dictionary ‹String, AnyObject› ?, _ error: NSError?) - ›()) {let manager = Alamofire. SessionManager.default manager.session.configuration.timeoutIntervalForRequest = 120 Alamofire.request (urlString, метод: .delete, параметры: parameterToBePassed) .responseJSON {}} - person Amutha Kumari; 16.06.2017

Основные причины этой проблемы:

  1. Сервер сильно загружен или не имеет ресурсов для своевременного ответа.
  2. Сетевое соединение пользователей медленное и не может загрузить ответ достаточно быстро.

Вы должны проверить свои журналы API и сервера, чтобы найти там любые потенциальные проблемы, убедиться, что нет ошибок и что API способен обрабатывать ваши запросы по мере масштабирования приложения.

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

Иногда пользовательские соединения прерываются из-за потери мобильного сигнала или по другим причинам, поэтому вам нужно с этим справиться.

person Scriptable    schedule 15.06.2017
comment
Спасибо за твой ответ - person Amutha Kumari; 15.06.2017
comment
Ошибка домена = NSURLErrorDomain Code = -999 отменено UserInfo = {NSErrorFailingURLKey = fdfd.com, NSErrorFailingURLStringKey = fdfd.com, NSLocalizedDescription = cancelled} .... я получаю сообщение об ошибке в alammofire .. как решить эту проблему - person Amutha Kumari; 17.06.2017