ios 实现断点续传 一 nsurlconnection
来源:互联网 发布:mac 动画制作软件 编辑:程序博客网 时间:2024/05/02 10:38
NSUrlConnection实现断点续传的关键是自定义http request的头部的range域属性。
Range头域
Range头域可以请求实体的一个或者多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999
但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。
在ios中使用NSMutableURLRequest来定义头部域
Range头域
Range头域可以请求实体的一个或者多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999
但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。
在ios中使用NSMutableURLRequest来定义头部域
NSURL *url1=[NSURL URLWithString:@"下载地址";NSMutableURLRequest* request1=[NSMutableURLRequest requestWithURL:url1];[request1 setValue:@"bytes=20000-" forHTTPHeaderField:@"Range"]; [request1 setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];NSData *returnData1 = [NSURLConnection sendSynchronousRequest:request1 returningResponse:nil error:nil]; [self writeToFile:returnData1 fileName:@"SOMEPATH"];-(void)writeToFile:(NSData *)data fileName:(NSString *) fileName{ NSString *filePath=[NSString stringWithFormat:@"%@",fileName]; if([[NSFileManager defaultManager] fileExistsAtPath:filePath] == NO){ NSLog(@"file not exist,create it..."); [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil]; }else { NSLog(@"file exist!!!"); } FILE *file = fopen([fileName UTF8String], [@"ab+" UTF8String]); if(file != NULL){ fseek(file, 0, SEEK_END); } int readSize = [data length]; fwrite((const void *)[data bytes], readSize, 1, file); fclose(file);}
- ios 实现断点续传 一 nsurlconnection
- ios 实现断点续传 一 nsurlconnection
- ios 实现简单的断点续传下载 nsurlconnection
- iOS开发 - NSURLConnection实现断点续传下载
- iOS开发 使用NSURLConnection实现断点续传下载
- iOS NSURLConnection下载(断点续传)
- 使用NSURLConnection实现断点续传。
- iOS开发下载、断点续传-NSURLConnection、NSURLSession
- NSURLConnection,NSURLSession断点续传的实现以及对比
- iOS网络编程(一)NSURLConnection
- IOS 网络初探(一) - NSURLConnection
- 基于NSURLConnection的多线程队列下载器,实现断点续传
- 24-断点续传-NSURLConnection
- ios实现断点续传
- ios断点续传实现
- iOS- 断点续传实现原理
- iOS实现断点续传
- IOS NSURLSessionDataTask实现断点续传
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- 新式求职方式:在美研究生两天开发HTML 5版Clear
- 数组名a和&a的不同
- php中filter_var后面的过滤选项
- Eclipse 的版本名称(比如Helios | Galileo | Ganymede | Europa) 和数字对应关系
- ios 实现断点续传 一 nsurlconnection
- openflow 1.0中交换机对OFPT_QUEUE_GET_CONFIG_REQUEST消息的响应
- VS2010可视化建模工具包
- 3D电影成像原理
- 教你设置更安全的密码
- Oralce中日期格式
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
- Linux虚拟网卡TUN/TAP
- Android基础之Service