如何在 iPhone 中使用 ASIHTTP 请求暂停和恢复下载文件
我正在使用 ASIHTTP 请求示例源代码来下载 url。 我的问题是如何暂停和恢复下载文件。
请帮忙。
I m using ASIHTTP Request sample source code for downloading urls.
My question is that how to pause and resume the downloading files.
Please Help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
弃用通知
ASIHTTP 在 2011 年左右被弃用,如果您现在想要网络连接,您应该查找 AFNetworking for ObjC或 Alamofire for Swift,或者坚持使用原生支持:
对于原生支持,在iOS 7中Apple添加了
NSURLSession
,可以启动下载任务(NSURLSessionDownloadTask
),并且这些任务可以取消和重新启动,查看方法来自
,有一个很好的解释。NSURLSession
的 downloadTaskWithResumeData(_:)不再需要 ASIHTTP,如果您必须保持旧应用程序运行,那么祝您好运。
原始答案
发布于 2011
ASI 本身可以使用
[myASIRequest setAllowResumeForFileDownloads:YES];
从文件恢复下载,请查看 如何使用 例子。编辑:好吧,没有简单的方法来暂停下载(
[myRequest Pause]
是理想的选择)。阅读并尝试了一段时间后,发现取消请求并重新发送是唯一的方法。例如,这是我制作的一个示例类:
开始(或重新启动)下载:
在上面的示例中,我正在加载我找到的奶酪的随机图像,并存储临时下载和完整下载。
取消请求将使临时文件的内容保持不变,事实上,我制作了一个 UIImageView,当按“取消”时,我可以看到下载文件的一部分。如果你想尝试一下:
Deprecation Notice
ASIHTTP was deprecated around 2011, if you want network connectivity now, you should look up AFNetworking for ObjC or Alamofire for Swift, or stick to the native support:
For native support, in iOS 7 Apple added the
NSURLSession
, which can start download tasks (NSURLSessionDownloadTask
), and these can be cancelled and restarted, check the methoddownloadTaskWithResumeData(_:)
fromNSURLSession
, that has a very good explanation.ASIHTTP is no longer needed, if you gotta are keeping a legacy app running, well, good luck.
Original Answer
Posted on 2011
ASI itself can resume a download from a file using
[myASIRequest setAllowResumeForFileDownloads:YES];
, check out the How-to-Use for an example.Edit: Ok, there's no easy way to pause a download (a
[myRequest pause]
would be ideal). After reading and trying for a while, turns out that cancelling the request and resending it again is the only way.For example, here's an example class I made:
To start (or restart) the download:
In the exmaple above, I'm loading a random image of cheese I found, and storing a temporary download, and a full download.
Canceling the request will keep the contents of the temporary file intact, in fact, I made an UIImageView, and when pressing "Cancel" I could see a part of the downloaded file. If you want to try it out: