`
zjjzmw1
  • 浏览: 1366563 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

ASIHTTPRequest-断点续传的下载

    博客分类:
  • iOS
阅读更多

ASIHTTPRequest-断点续传的下载

从0.94版本开始,ASIHTTPRequest可以恢复中断的下载
- (IBAction)resumeInterruptedDownload:(id)sender//恢复中断的下载的方法。
{
  NSURL *url = [NSURL URLWithString:
    @"http://www.dreamingwish.com/wp-content/uploads/2011/10/asihttprequest-auth.png"];
  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
 
  NSString *downloadPath = @"/Users/zhangmingwei/Desktop/asi.png";//设置下载的路径。
 
  //当request完成时,整个文件会被移动到这里
  [request setDownloadDestinationPath:downloadPath];//下载的目的地。
 
  //这个文件已经被下载了一部分
  [request setTemporaryFileDownloadPath:@"/Users/zhangmingwei/Desktop/asi.png.download"];
  [request setAllowResumeForFileDownloads:YES];
  [request startSynchronous];//同步请求。
 
  //整个文件将会在这里
  NSString *theContent = [NSString stringWithContentsOfFile:downloadPath];
}
这个特性只对下载数据到文件中有效,你必须为一下情况的request设置allowResumeForFileDownloads 为YES
    •    任何你希望将来可以断点续传的下载(否则,ASIHTTPRequest会在取消或者释放内存时将临时文件删除)
    •    任何你要进行断点续传的下载
另外,你必须自己设置一个临时下载路径(setTemporaryFileDownloadPath),这个路径是未完成的数据的路径。新的数据将会被添加到这个文件,当下载完成时,这个文件将被移动到downloadDestinationPath 。
断点续传的工作原理是读取temporaryFileDownloadPath的文件的大小,并使用Range: bytes=x HTTP头来请求剩余的文件内容。
ASIHTTPRequest并不检测是否存在Accept-Ranges头(因为额外的HEAD头请求会消耗额外的资源),所以只有确定服务器支持断点续传下载时,再使用这个特性。

1
0
分享到:
评论

相关推荐

    ASIHTTPRequest断点续传

    在这个特定的主题中,我们关注的是"ASIHTTPRequest实现资源的下载,断点续传"。断点续传是一项重要的下载技术,尤其在处理大文件或网络不稳定时,它允许用户暂停下载并在稍后继续,而无需重新开始。 首先,了解断点...

    ios 断点续传下载例子

    本示例项目"ios 断点续传下载例子"是基于ASIHTTPRequest库实现的,这是一个已不再维护但依然被广泛使用的第三方网络请求库,因其丰富的功能和良好的兼容性而受到开发者喜爱。 首先,理解断点续传下载的基本原理:当...

    DownAndASIRequest下载,断点续传

    总的来说,“DownAndASIRequest”项目是一个很好的学习资源,它演示了如何利用ASIHttpRequest库在iOS应用中实现下载和断点续传功能。不过,需要注意的是,ASIHttpRequest库虽然强大,但已经停止更新,对于较新的iOS...

    IOS 多线程异步下载,断点续传

    使用ASIHTTPRequest进行断点续传下载,需要设置请求头中的`If-Range`和`Range`字段,以指定从哪个位置开始下载。 总结,iOS应用在进行文件下载时,使用多线程异步下载可以提升用户体验,结合断点续传技术,即使在...

    断点续传队列和本地持久化

    1.基于ASIHttpRequest的断点续传功能,进一步封装,自定义了下载队列,包括下载中、已完成队列,并且用CoreData对其持久化封装,使用简单,资源url作为标示,传入网络资源url和本地path即可。 2.队列使用字典进行...

    IOS应用源码之【应用】ASIHTTPRequest-强大的HTTP包装开源项目.rar

    7. **断点续传**:支持大文件下载的断点续传功能。 三、使用方法 1. **初始化请求**:创建ASIHTTPRequest对象,设置URL,如`ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];` 2. **设置请求类型...

    IOS基于ASIHttpRequest的封装,使用单例模式断点续传

    本项目是基于ASIHttpRequest的封装,特别针对iOS应用中的文件下载,尤其是实现了断点续传功能,并采用单例模式进行设计。以下是关于这个项目的关键知识点的详细说明: 1. **ASIHttpRequest**:ASIHttpRequest是Sam ...

    ASI进度追踪和断点续传

    在“ASI的进度追踪和断点续传-NonARC”项目中,开发者可以学习如何在没有ARC的情况下实现ASIHttpRequest的进度追踪和断点续传功能。这包括设置请求的回调函数以监控进度,保存和恢复下载状态,以及正确处理内存管理...

    asihttprequest带demo代码包

    - ASIHTTPRequest 支持断点续传,这在下载大文件时非常有用,通过 `-[ASIHTTPRequest setShouldResumeDownloadFromData:]`。 9. **身份验证**: - 提供了对 HTTP 基本认证和 Digest 认证的支持,如 `-...

    ASIHTTPRequest

    8. **断点续传**:对于大文件下载,ASIHTTPRequest支持断点续传,即在中断后能从上次停止的地方继续下载。 9. **错误处理**:当请求失败时,会返回一个错误对象,包含了错误代码和描述,方便调试。 10. **自定义...

    ASIHTTPRequest+UITableView实现多个下载任务

    在ASIHTTPRequest中,可以通过setShouldResumeDownloads:YES来开启断点续载功能,并配合使用requestDidResume和requestDidStopNotification通知来监控下载状态。 在UITableView中,我们可以为每个下载任务创建一个...

    ASIHttpRequest ios开发框架

    7. **断点续传**:对于大文件的下载,ASIHttpRequest支持断点续传,即使在下载过程中应用程序被关闭或设备重启,也能从上次中断的地方继续下载。 8. **请求队列管理**:可以将多个请求放入队列,按照顺序或并行执行...

    ASIHTTPRequest 源码

    5. **断点续传**:对于大文件下载,ASIHTTPRequest支持断点续传功能,即使下载中断,下次也能从上次断点处继续下载。 6. **请求状态监控**:提供了丰富的请求状态回调,如开始、结束、错误等,方便开发者跟踪请求...

    ASIHTTPRequest第三方下载工具

    如果请求是下载操作,ASIHTTPRequest支持断点续传。通过保存和恢复请求的状态,可以在应用程序下次启动时从上次中断的地方继续下载。 7. **自动处理cookies**: ASIHTTPRequest会自动处理服务器返回的cookies,...

    ASIHTTPRequest网络API

    10. **断点续传**:对于大文件下载,ASIHTTPRequest支持断点续传,即暂停下载后可以从上次停止的地方继续。 关于导入ASIHTTPRequest到项目中的步骤: 1. 下载最新版本的ASIHTTPRequest库,通常是一个.zip文件。 2....

    ASIHttpRequest 队列下载 UITableView实现

    为了实现断点续传,ASIHttpRequest提供`shouldResumeDownload`属性,当该属性设置为YES时,ASIHttpRequest会检查本地是否存在部分下载的文件,并尝试从中恢复下载。同时,你可以通过`downloadDestinationPath`设置...

    ASIHttpRequest

    对于大文件下载,ASIHTTPRequest 支持断点续传功能。当下载中断后,可以从上次停止的地方继续下载,避免了重复下载。通过设置 `shouldResumeFromPartialDownload` 为 `YES`,可以启用此功能: ```objc ...

Global site tag (gtag.js) - Google Analytics