快速获得自定义标头中文件大小的下载文件进度

时间:2019-07-02 13:30:21

标签: swift alamofire

我有一个端点,可以在我的swift应用程序中下载一个zip文件。但是问题在于端点向我发送了一个自定义标头中的文件大小,而不是内容长度,因为它使用了Transfer-Encoding:分块。我正在使用alamofire来管理请求,但是默认情况下,库使用content-length标头来跟踪进度。 是否有解决方案可使用alamofire中的自定义标题跟踪进度,如果没有,如何使用自定义标题跟踪进度并在进度视图中显示进度。 谢谢你们的帮助! enter image description here

1 个答案:

答案 0 :(得分:1)

没有简单的方法来执行此操作,也根本没有办法将其下载到文件中。对于数据传输,您需要做的是:

  1. 实施urlSession(_:dataTask:didReceive:completionHandler:)委托方法以侦听您的请求收到的初始URLResponse
  2. 一旦存储了响应,就会在urlSession(_:dataTask:didReceive:)方法中跟踪下载时收到的Data,并使用下载的总数据与{{1 }}标头。

这需要对Alamofire本身进行修改,但可能会涉及到。如果可能的话,查看端点是否可以返回Len标头会更好。