NSURLConnection 相比,NSURLsession 改进:

1、增加了几个细分的网络操作类

NSURLSessionDataTask、NSURLSessionUploadTask、NSURLSessionDownloadTask。
特别是NSURLSessionDownloadTask,下载数据先下载到tmp目录,减轻了内存的压力。断点续传,NSURLConnection需要设置头部

// 设置请求头信息,说明只需要请求该资源嗯一部分数据
  /*
   bytes=0-1000   表示下载0-1000的数据
   bytes=0-       表示从0开始下载到下载完毕
   bytes=100-     表示从100开始下载到下载完毕
   */
  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  NSString *range = [NSString stringWithFormat:@"bytes=%zd-", self.currentSize];
  [request setValue:range forHTTPHeaderField:@"Range"];

NSURLsession 获取resumeData

 (void)cancelByProducingResumeData:(void (^)(NSData * _Nullable resumeData))completionHandler;

[self.session downloadTaskWithResumeData:self.resumeData]resume] 

就可完成续传。

2、 同一个 session 发送多个请求,只需要建立一次连接(复用了TCP,HTTP 2.0)

3、 BackgroundSession

你可能感兴趣的:(NSURLConnection 相比,NSURLsession 改进:)