使用 NSURLSession UploadTask 暂停、恢复、取消上传任务

Pause,Resume,Cancel Upload Task Using NSURLSession UploadTask

我正在开发一个使用 NSURLSession 上传多个文件的应用程序,现在我的文件已成功上传。但现在我想要实现的是暂停、恢复和取消上传,就像我们在下载任务中所做的那样。可能吗。?任何帮助,将不胜感激。谢谢

我研究了很多,但一无所获。在我假设这是一个下载任务并在我的代码上尝试了这个之后,我开始知道我们可以 "pause , resume" 使用 NSURLSession 上传任务,就像我们在正在下载任务。

要暂停任务,只需调用 [yourUploadTask suspend]; 恢复 [yourUploadTask resume]; 取消[yourUploadTask cancel];

它可能会对使用 NSURLSession 处理 uploadTask 的人有所帮助。

您可以尝试使用继承自URLSessionTask的suspend()、resume()方法,但resume()会导致上传失败。您可以在上传 class 中通过自动重试上传错误(即 400 秒以外的任何非永久性错误)来解决此问题,但这意味着从头开始重新启动每个待处理的上传并丢失已上传的数据。

URLSessionUploadTask 没有取消(byProducingResumeData completionHandler: @escaping (Data?) -> Void),就像 URLSessionDownloadTask 一样,因此没有保存状态数据来恢复和继续上传。要实现一个需要我们自己滚动,我还没有这样做,但我相信需要特定的服务器支持才能实现,以及较低级别网络 API 的用户。