你的位置:首页 > 操作系统

[操作系统]关于nsurlsession


  nsurlsession 是ios7新出的api,用来代替nsurlconnection 。话不多说。

  nsurlsession包含三个方面1,NSURLSessionConfiguration ,2NSURLSession ,3NSURLTask 。下面是一饿断点续传的代码。

 //首先创建NSURLSession    

NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];     NSURLSession  *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil]; 

//创建请求

NSURL *url = [NSURL URLWithString:@"https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1301384128,1980144396&fm=58"];  NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

 

//创建网络任务并开始

//用NSURLSession和NSURLRequest创建网络任务

-(void)start

self.task = [[self session] downloadTaskWithRequest:[self request]];  

[self.task resume];//开始

}

//  暂停并记录数据

-(void)pause

{

if (self.task) {  

  //取消下载任务,把已下载数据存起来  

 [self.task cancelByProducingResumeData:^(NSData *resumeData) {  

   self.partialData = resumeData;  

   self.task = nil; 

}];  

  } 


}

//恢复下载

-(void)resume

{  

   if (!self.task) 

{  

  //判断是否又已下载数据,有的话就断点续传,没有就完全重新下载  

  if (self.partialData) 

      {  

        self.task = [[self session] downloadTaskWithResumeData:self.partialData];  

       }

else{  

         self.task = [[self session] downloadTaskWithRequest:[self request]];  

      }  

  }  

  [self.task resume];  

以上就是利用NSURLSession进行的断点续传功能,若要得到进度,实现session的代理即可获得。