Задача фоновой загрузки URLSession продолжает сбрасываться

Я испытываю странное поведение при использовании uploadTask для URLSessionConfiguration.background.

Мой пользовательский делегат реализует все методы делегата, принадлежащие URLSessionDelegate, URLSessionTaskDelegate и URLSessionDataDelegate. Все они имеют оператор print, указывающий, что метод был вызван.

Я пытаюсь загрузить пять изображений на сервер, у каждого из них есть собственный сеанс с идентификатором, соответствующим идентификатору изображения.

Проблема в том, что при загрузке с использованием очень медленного соединения "край" процесс загрузки сбрасывается до достижения 100%. Это происходит всякий раз, когда вызывается didFinishCollectingMetrics, как вы можете видеть здесь: Данные

Это происходит не всегда при использовании медленного соединения, а только иногда.

У кого-нибудь есть идеи относительно того, что здесь происходит?


person Frederik    schedule 14.12.2016    source источник
comment
вам удалось разобраться с этим вопросом?   -  person Baki    schedule 29.06.2017


Ответы (2)


Пограничные сети общеизвестно ненадежны, и частые сбои загрузки не являются чем-то необычным. Чтобы решить эту проблему, замените загрузку на основе целых файлов какой-либо формой загрузок по частям, чтобы вы могли продолжить загрузку с того места, где остановились, но для этого требуется поддержка сервера.

person dgatwood    schedule 15.12.2016

Увеличьте время ожидания NSURLSession для запроса и ресурса:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
[configuration setTimeoutIntervalForRequest:120];
[configuration setTimeoutIntervalForResource:240];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];

Используйте session, чтобы загрузить свое изображение

person nebuchadnezzar    schedule 14.12.2016
comment
@zain-dev Спасибо за ответ. Кажется, это не решает проблему. Я попытался установить время ожидания на 300, но теперь я получаю сообщение Время ожидания запроса истекло. чего я раньше не получал. - person Frederik; 14.12.2016
comment
@frederik, ты решил проблему? у меня такая же проблема, но с загрузкой видео. Спасибо - person Denis Bulgarini; 16.08.2017