ios – 如何在使用NSURLSession downloadTaskWithResumeData时更改URL:?

ios – 如何在使用NSURLSession downloadTaskWithResumeData时更改URL:?,第1张

概述我使用NSURLSession downloadTaskWithURL:下载文件,并使用NSURLSessionDownloadTask cancelByProducingResumeData:生成NSData并将其保存到本地临时文件. 然后我想通过使用NSURLSession downloadTaskWithResumeData:恢复下载任务. 有一个问题,我用来下载文件的URL是临时URL,我 @H_403_2@ 我使用NSURLSession downloadTaskWithURL:下载文件,并使用NSURLSessionDownloadTask cancelByProducingResumeData:生成NSData并将其保存到本地临时文件.

@H_301_8@

然后我想通过使用NSURLSession downloadTaskWithResumeData:恢复下载任务.@H_301_8@

有一个问题,我用来下载文件的URL是临时URL,我需要请求一个新的URL来下载相同的文件.
使用downloadTaskWithResumeData:后,它帮助我创建一个NSURLSessionDownloadTask与以前相同的URL.@H_301_8@

如何用我新请求的新URL替换URL?
或者我如何更改此NSURLSessionDownloadTask的http请求?@H_301_8@

您如何处理使用不同的URL恢复NSURLSessionDownloadTask的情况?@H_301_8@

我正在考虑获取NSURLSession下载的.tmp文件,并在http header中设置Range,然后使用新的临时URL写入此文件.@H_301_8@解决方法 如果资源的路径被修改,我不相信我们可以恢复下载.

@H_301_8@

根据Apple Developer Class Reference:@H_301_8@

@H_301_8@

A download can be resumed only if the following conditions are met:@H_301_8@

The resource has not changed since you first requested it@H_301_8@

The task is an http or httpS GET request@H_301_8@

The server provIDes either the ETag or Last-ModifIEd header (or both) in its response@H_301_8@

The server supports byte-range requests@H_301_8@

The temporary file hasn’t been deleted by the system in response to disk space pressure@H_301_8@

同样如我们所见,我们无法在恢复下载时以编程方式修改URL.我们只能选择提供部分下载的数据.@H_301_8@ @H_403_2@ 总结

以上是内存溢出为你收集整理的ios – 如何在使用NSURLSession downloadTaskWithResumeData时更改URL:?全部内容,希望文章能够帮你解决ios – 如何在使用NSURLSession downloadTaskWithResumeData时更改URL:?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1004387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存