我正在开发一个使用NSURLSession上传多个文件的应用程序,目前我的文件已经成功上传。但是现在我想实现暂停、恢复和取消上传,就像我们在下载任务中所做的一样。这是否可能?任何帮助将不胜感激。谢谢。
我正在开发一个使用NSURLSession上传多个文件的应用程序,目前我的文件已经成功上传。但是现在我想实现暂停、恢复和取消上传,就像我们在下载任务中所做的一样。这是否可能?任何帮助将不胜感激。谢谢。
[yourUploadTask suspend];
,要恢复任务,只需调用[yourUploadTask resume];
,要取消任务,只需调用[yourUploadTask cancel];
这可能会对使用NSURLSession上传任务的人有所帮助。您可以尝试使用继承自URLSessionTask的suspend()和resume()方法,但是resume()会导致上传失败。您可以在上传类中通过自动重试上传错误(即除了400之外的任何非永久性错误)来解决这个问题,但这意味着必须重新开始每个挂起的上传,并且会丢失已经上传的数据。
与URLSessionDownloadTask不同,URLSessionUploadTask没有cancel(byProducingResumeData completionHandler: @escaping (Data?) -> Void)方法,因此没有保存状态数据以恢复和继续上传。要实现这个方法需要自己编写代码,我还没有做过,但我相信需要特定的服务器支持来实现,并且需要使用较低级别的网络API。