получить прогресс загруженного файла с размером файла в пользовательском заголовке в Swift - PullRequest
1 голос
/ 02 июля 2019

У меня есть конечная точка, которая позволяет мне загружать zip-файл в моем быстром приложении.Но проблема в том, что конечная точка отправляет мне размер файла в пользовательском заголовке, а не в длине содержимого, потому что он использует Transfer-Encoding: chunked.Я использую alamofire для управления запросом, но библиотека по умолчанию использует заголовок длины содержимого для отслеживания прогресса.Есть ли решение для отслеживания прогресса с помощью настраиваемого заголовка в alamofire, и если нет, как использовать настраиваемый заголовок для отслеживания прогресса и отображения его в виде прогресса.спасибо ребята за помощь!enter image description here

1 Ответ

1 голос
/ 02 июля 2019

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

  1. Реализуйте метод делегата urlSession(_:dataTask:didReceive:completionHandler:) для прослушивания начального URLResponse вашего запроса.
  2. После того, как ответ сохранен, в методе urlSession(_:dataTask:didReceive:), который отслеживает Data, который вы получаете по мере его загрузки, обновляется любой прогресс с общим количеством загруженных данных по сравнению со значением в заголовке Len.

Это потребует модификаций самого Alamofire, которые, по возможности, будут задействованы. Если это вообще возможно, гораздо лучше было бы увидеть, может ли конечная точка вернуть заголовок Content-Length.

...