`
wsqwsq000
  • 浏览: 684974 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ASIHTTPRequest实现断点下载

 
阅读更多

 

 

- (IBAction)URLFetchWithProgress:(id)sender

{

[startButton setTitle:@"Stop" forState:UIControlStateNormal];

[startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];

NSString*tempFile = [[[[NSBundle mainBundlebundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.download"];

if ([[NSFileManager defaultManagerfileExistsAtPath:tempFile]) {

[[NSFileManager defaultManagerremoveItemAtPath:tempFile error:nil];

}

[self resumeURLFetchWithProgress:self];

}

- (IBAction)stopURLFetchWithProgress:(id)sender

{

networkQueue = [[ASINetworkQueue allocinit];

timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(updateBandwidthUsageIndicatoruserInfo:nil repeats:YES];

timer = nil;

[startButton setTitle:@"Stop" forState:UIControlStateNormal];

[startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];

[networkQueue cancelAllOperations];

[resumeButton setEnabled:YES];

}

- (IBAction)resumeURLFetchWithProgress:(id)sender 

{

[resumeButton setEnabled:NO];

[startButton setTitle:@"Start" forState:UIControlStateNormal];

 [startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];

[networkQueue cancelAllOperations];

[networkQueue setShowAccurateProgress:YES];

[networkQueue setDownloadProgressDelegate:progressIndicator];

[networkQueue setDelegate:self];

[networkQueue setRequestDidFinishSelector:@selector(URLFetchWithProgressComplete:)];

ASIHTTPRequest*request=[[[ASIHTTPRequest allocinitWithURL:[NSURLURLWithString:@"http://9991.net/blog/mp3/2.mp3"]] autorelease];

[request setDownloadDestinationPath:[[[[NSBundle mainBundlebundlePath]

stringByDeletingLastPathComponentstringByAppendingPathComponent:@"MemexTrails_1.0b1.mp3"]];

[request setTemporaryFileDownloadPath:[[[[NSBundle mainBundlebundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.down"]];

[request setAllowResumeForFileDownloads:YES];

[networkQueue addOperation:request];

[networkQueue go];

}

- (void)URLFetchWithProgressComplete:(ASIHTTPRequest *)request

{

if ([request error]) {

fileLocation.text=[NSString stringWithFormat:@"An error occurred:%@",[[[requesterroruserInfoobjectForKey:@"Title"]];

else {

fileLocation.text=[NSString stringWithFormat:@"File downloaded to %@",[requestdownloadDestinationPath]];

}

[startButton setTitle:@"Start" forState:UIControlStateNormal];

[startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];

}

- (IBAction)throttleBandwidth:(id)sender

{

if ([(UIButton *)sender state] ==YES) {

[ASIHTTPRequest setMaxBandwidthPerSecond:ASIWWANBandwidthThrottleAmount];

else {

[ASIHTTPRequest setMaxBandwidthPerSecond:];

}

}

 

 

分享到:
评论

相关推荐

    ASIHTTPRequest断点续传

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

    ASIHTTPRequest+UITableView实现多个下载任务

    此外,此项目未实现断点续载功能。断点续载是指在下载过程中,如果因为网络问题中断,可以从上次中断的地方继续下载,而不是从头开始。在ASIHTTPRequest中,可以通过setShouldResumeDownloads:YES来开启断点续载功能...

    ASIHttpRequest 队列下载 UITableView实现

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

    ASIHTTPRequest

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

    asihttprequest带demo代码包

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

    DownAndASIRequest下载,断点续传

    `:暂停和恢复下载操作,用于实现断点续传功能。 5. `- (long long)contentLength;`:获取服务器返回的文件总长度。 6. `- (long long)bytesDownloaded;`:获取当前已下载的字节数。 在实现断点续传时,开发者还...

    ASIHttpRequest ios开发框架

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

    ios 断点续传下载例子

    在ASIHTTPRequest库中,实现断点续传下载的关键在于使用`setAllowResumeForFileDownloads:`方法和`setShouldTryToResume:`方法。前者允许请求在可能的情况下尝试恢复之前中断的下载,而后者则指示ASIHTTPRequest是否...

    ASIHTTPRequest网络API

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

    ASIHTTPRequest 源码

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

    ASIHTTPRequest第三方下载工具

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

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

    在iOS中实现断点续传通常需要保存当前下载的文件大小和URL,当再次启动下载时,根据这些信息定位到已下载的数据位置,然后继续从那里下载剩余部分。 3. **单例模式**:在iOS开发中,单例是一种设计模式,常用于管理...

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

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

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

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

    ASIHTTPRequest 框架

    8. **断点续传**:对于大文件下载,ASIHTTPRequest 支持断点续传,即使下载中断,也能从上次停止的地方继续。 9. **错误处理**:框架提供了丰富的错误信息,方便调试和处理异常情况。 然而,尽管 ASIHTTPRequest ...

    ASIHttpRequest下载

    同时,它也支持断点续传和后台下载,这对于大文件的下载尤其有用。 6. **进度回调** 通过代理方法或者block,可以实现请求的进度回调,用于显示下载或上传进度: ```objc [request setDownloadProgressBlock:^...

    ASIHttpRequest 类库

    4. **断点续传**:对于大文件下载,ASIHttpRequest 支持断点续传,即使在下载过程中中断,也可以从上次中断的位置继续下载。 5. **上传和下载进度反馈**:提供回调函数,可以实时获取上传或下载的进度,方便显示...

Global site tag (gtag.js) - Google Analytics