gpt4 book ai didi

ios - 如何查看当前 URLSessionDownloadTask 的恢复能力?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:52 26 4
gpt4 key购买 nike

目前我正在努力从服务器下载一个文件,而且效果很好。


我的问题是在实际下载开始之前我怎么知道 url 是否具有恢复 能力
下面是一些代码片段,

class Downloader:NSObject,URLSessionDownloadDelegate {
/*
SOME PROPERTIES & DECLARATIONS
*/

override init() {
super.init()
let backgroundSessionConfiguration = URLSessionConfiguration.background(withIdentifier: url.absoluteString)
backgroundSessionConfiguration.networkServiceType = .default
self.defaultSession = URLSession(configuration: backgroundSessionConfiguration, delegate: self, delegateQueue: OperationQueue.main)
}

func start(_ block:DownloaderCompletionHandler?) {
guard self.input == nil else { return }
guard self.output == nil else { return }
if let data = self.resumableData {
self.downloadTask = self.defaultSession.downloadTask(withResumeData: data)
}else {
let request = URLRequest(url: self.input!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 0.60)
self.downloadTask = self.defaultSession.downloadTask(with: request)
}
self.downloadTask.resume()
}
func pause() {
self.downloadTask.cancel { (data) in
self.resumableData = data
}
}
}

请指导我了解这种情况。提前致谢

最佳答案

只有满足以下条件才能恢复下载:

  • 资源自您第一次请求以来没有改变

  • 任务是 HTTP 或 HTTPS GET 请求

  • 服务器在其响应中提供 ETag 或 Last-Modified header (或两者)

  • 服务器支持字节范围请求

  • 临时文件因磁盘空间压力未被系统删除

→ 来源:https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel

关于ios - 如何查看当前 URLSessionDownloadTask 的恢复能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46316524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com