作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个端点,可以让我在我的 swift 应用程序中下载一个 zip 文件。但问题是端点在自定义 header 中向我发送文件大小而不是内容长度,因为它使用传输编码:分块。我正在使用 alamofire 来管理请求,但库默认使用内容长度 header 来跟踪进度。是否有一种解决方案可以在 alamofire 中使用自定义 header 跟踪进度,如果没有,如何使用自定义 header 跟踪进度并将其显示在进度 View 中。谢谢你们的帮助!
最佳答案
没有简单的方法可以做到这一点,也没有办法下载到文件中。对于数据传输,您需要做的是:
urlSession(_:dataTask:didReceive:completionHandler:)
委托(delegate)方法来监听您的请求收到的初始 URLResponse
。urlSession(_:dataTask:didReceive:)
方法中跟踪您在下载时收到的 Data
,更新任何进度下载的总数据与 Len
header 中的值。这将需要对 Alamofire 本身进行修改,虽然可能,但会涉及到。如果可能的话,查看端点是否可以返回 Content-Length
header 会更好。
关于swift - 在自定义 header 中快速获取下载文件的进度和文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56853642/
我是一名优秀的程序员,十分优秀!