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的代理即可获得。