NSURLSession — Как загрузить большой файл и загрузить большой файл в фоновом режиме в одном запросе?IOS

Программируем под IOS
Anonymous
NSURLSession — Как загрузить большой файл и загрузить большой файл в фоновом режиме в одном запросе?

Сообщение Anonymous »

Я использую NSURLSession с фоновой конфигурацией для загрузки большого файла, и сервер немедленно возвращает другой большой файл в том же запросе (я не могу изменить поведение сервера). Я использую только API-интерфейс uploadTaskWithRequest:fromFile: на основе делегата, потому что мне нужно, чтобы передача продолжалась, когда приложение находится в фоновом режиме или закрыто. Проблема: для этой задачи загрузки я никогда не получаю URLSession:dataTask:didReceiveResponse:completionHandler: в своем делегате, поэтому я не могу вернуть NSURLSessionResponseBecomeDownload и, следовательно, не могу преобразовать ее в задачу загрузки, которая передается на диск. Я либо получаю весь ответ, буферизованный в памяти (через DidReceiveData), либо не имею возможности передать его в виде файла. Использование dataTaskWithRequest: вызывает DidReceiveResponse, но задачи обработки данных не выполняются надежно в фоновом режиме для этого варианта использования. Существует ли какой-либо поддерживаемый шаблон с NSURLSession, который позволяет фоновую загрузку большого файла с помощью uploadTaskWithRequest:fromFile:, а также потоковую передачу тела ответа большого сервера непосредственно в файл (а не в память) в том же запросе?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -backgroun

Вернуться в «IOS»