ios 实现断点续传 一 nsurlconnection

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来定义头部域

[cpp] view plaincopyprint?

  1. NSURL *url1=[NSURL URLWithString:@"下载地址";
  2. NSMutableURLRequest* request1=[NSMutableURLRequest requestWithURL:url1];
  3. [request1 setValue:@"bytes=20000-" forHTTPHeaderField:@"Range"];
  4. [request1 setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
  5. NSData *returnData1 = [NSURLConnection sendSynchronousRequest:request1 returningResponse:nil error:nil];
  6. [self writeToFile:returnData1 fileName:@"SOMEPATH"];
  7. -(void)writeToFile:(NSData *)data fileName:(NSString *) fileName
  8. {
  9. NSString *filePath=[NSString stringWithFormat:@"%@",fileName];
  10. if([[NSFileManager defaultManager] fileExistsAtPath:filePath] == NO){
  11. NSLog(@"file not exist,create it...");
  12. [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
  13. }else {
  14. NSLog(@"file exist!!!");
  15. }
  16. FILE *file = fopen([fileName UTF8String], [@"ab+" UTF8String]);
  17. if(file != NULL){
  18. fseek(file, 0, SEEK_END);
  19. }
  20. int readSize = [data length];
  21. fwrite((const void *)[data bytes], readSize, 1, file);
  22. fclose(file);
  23. }
时间: 2025-01-15 19:42:20

ios 实现断点续传 一 nsurlconnection的相关文章

IOS Http断点续传浅析

下载LOFTER客户端IOS Http断点续传浅析 http实现断点续传的关键地方就是在httprequest中加入“Range”头. //设置Range头,值:bytes=x-y;x:开始字节,y:结束字节,不指定则为文件末尾[request addValue:@"bytes=500-" forHTTPHeaderField:@"Range"]; 如果服务器正确响应的话,就可以顺利续传:如果服务器不支持,那就只能用其它方法了. 经过测试,服务器的不支持分为两种情况

iOS开发网络篇—NSURLConnection基本使用

iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... (3)NSMutableURLRequest:NSURLRequest的子类 (4)NSURLConnection:负责发送请求,建立客户端和服务器的连接.发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据 二.NSUR

iOS学习笔记(八)——iOS网络通信http之NSURLConnection

转自:http://blog.csdn.net/xyz_lmn/article/details/8968182 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLConnection实现http通信的方式. NSURLConnection提供了异步请求.同步请求两种通信方式. 1.异步请求 iOS5.0 SDK NSURLConnection类新增的sendAsynchronousRequest:queu

iOS网络编程开发-NSURLConnection基本使用

iOS网络编程开发-NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... (3)NSMutableURLRequest:NSURLRequest的子类 (4)NSURLConnection:负责发送请求,建立客户端和服务器的连接.发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据 二.NSU

【转】iOS学习笔记(八)——iOS网络通信http之NSURLConnection

移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLConnection实现http通信的方式. NSURLConnection提供了异步请求.同步请求两种通信方式. 1.异步请求 iOS5.0 SDK NSURLConnection类新增的sendAsynchronousRequest:queue:completionHandler:方法,从而使iOS5支持两种异步请求方式.我们先从新增类开始. 1)se

IOS网络访问之NSURLConnection

IOS网络访问主要建立在http协议上 IOS提供了几个重要的对象完成http请求响应 NSURLRequest:代表一个请求,通过NSURLRequest可以设置请求的URL地址以及缓存策略 NSMutableURLRequest:NSURLRequest的子类,可以方便地设置请求头的各种信息以及请求方式 NSURLConnection:网络访问对象,可以通过同步或者异步的方式发送请求 - (void)viewDidLoad { [super viewDidLoad]; // Do any a

Ios之网络编程NSURLConnection

通过NSURLConnection主要通过四个类进行网络访问:NSURL,NSURLRequest,NSMutableURLRequest,NSURLConnection 一.基本知识 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... (3)NSMutableURLRequest:NSURLRequest的子类 (4)NSURLConnection:负责发送请求,建立客户端和服务器的连接.

iOS之数据请求NSURLConnection

NSString *lcsUrl = @"http://192.168.1.1:8080/lcsUrl"; //如果网址中有汉字,需要先转码 NSString *word = [NSString stringWithUTF8String:"汉字"];//注意此处到字符串要求传一个c的字符串,没有@ NSString *finaUrl = [NSString stringWithFormat:@"http://192.168.1.1:8080/lcsUrl=

iOS开发网络篇--NSURLConnection

S简介 NSURLConnection: 作用: 1.负责发送请求,建立客户端和服务器的连接发送数据给服务器 2.并收集来自服务器的响应数据 步骤: 1.创建一个NSURL对象,设置请求路径 2.传入NSURL并创建一个NSURLRequest对象,设置请求头和请求体 3.使用NSURLConnection发送请求 常见类 1.NSURL:收纳请求的地址 2.NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有一个NSURL对象.请求方法.请求头.请求体等等