日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AFNetworking 下载文件断点续传操作

發布時間:2025/5/22 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AFNetworking 下载文件断点续传操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:本示例代碼包括:

  • 文件下載,寫入指定目錄
  • 下載進度,回調Progress;
  • 斷點續傳,下載暫停,繼續操作;

二:本項目 適用于 AFNetworking 1.x 版本

1 #pragma mark 斷點續傳下載; 2 3 //斷點下載續傳--需要服務器端的支持,本次測試為下載百度音樂,此接口,會在第二次暫停,繼續下載時,出404錯誤; 4 5 //進度 6 UIProgressView *downProgressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault]; 7 downProgressView.center = CGPointMake(self.view.center.x, 20); 8 downProgressView.progress = 0; 9 downProgressView.progressTintColor = [UIColor blueColor]; 10 downProgressView.trackTintColor = [UIColor grayColor]; 11 [self.view addSubview:downProgressView]; 12 13 //開始 14 UIButton *start = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 15 start.frame = CGRectMake(25, 40, 80, 30); 16 [start setTitle:@"開始" forState:UIControlStateNormal]; 17 [start addTarget:self action:@selector(startDownloadOp) forControlEvents:UIControlEventTouchUpInside]; 18 19 //暫停 20 UIButton *pause = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 21 pause.frame = CGRectMake(125, 40, 80, 30); 22 [pause setTitle:@"暫停" forState:UIControlStateNormal]; 23 [pause addTarget:self action:@selector(pausetDownloadOp) forControlEvents:UIControlEventTouchUpInside]; 24 25 //繼續 26 UIButton *resume = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 27 resume.frame = CGRectMake(220, 40, 80, 30); 28 [resume setTitle:@"繼續" forState:UIControlStateNormal]; 29 [resume addTarget:self action:@selector(resumeDownloadOp) forControlEvents:UIControlEventTouchUpInside]; 30 31 [self.view addSubview:start]; 32 [self.view addSubview:pause]; 33 [self.view addSubview:resume]; 34 35 //文件名 36 NSString *fileName = [NSString stringWithFormat:@"%@愿得一人聽.mp3",NSTemporaryDirectory()]; 37 NSLog(@"%@",fileName); 38 39 //下載 40 NSURLRequest *downloadRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:MusicOne]]; 41 self.downloadMusicOP = [[AFHTTPRequestOperation alloc]initWithRequest:downloadRequest]; 42 _downloadMusicOP.outputStream = [NSOutputStream outputStreamToFileAtPath:fileName append:NO]; 43 44 [_downloadMusicOP setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { 45 CGFloat progress = ((float)totalBytesRead) / totalBytesExpectedToRead; 46 [downProgressView setProgress:progress animated:YES]; 47 start.enabled = NO; 48 [start setTitle:@"下載中" forState:UIControlStateNormal]; 49 }]; 50 51 [_downloadMusicOP setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 52 start.enabled = NO; 53 [start setTitle:@"完成" forState:UIControlStateNormal]; 54 NSLog(@"download finish"); 55 NSLog(@"%@",[[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:nil]); 56 57 } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 58 NSLog(@"error %@",error); 59 }]; 60 61 62 63 64 65 } 66 67 #pragma mark AFNetworking 下載之斷點續傳; 68 69 - (void)startDownloadOp 70 { 71 [_downloadMusicOP start]; 72 } 73 74 - (void)pausetDownloadOp 75 { 76 [_downloadMusicOP pause]; 77 } 78 79 - (void)resumeDownloadOp 80 { 81 [_downloadMusicOP resume]; 82 }

? ?項目代碼:http://git.oschina.net/cocoajin/AFNetworkingTest

?

轉載于:https://www.cnblogs.com/cocoajin/p/3484487.html

總結

以上是生活随笔為你收集整理的AFNetworking 下载文件断点续传操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。