NSURLSession由三个基本模块构成:
- NSURLSession
- NSURLSessionConfiguation
- NSURLSessionTask
NSURLSession
- DefaultSession
将cache和creditials储存于本地 - Ephemeral Session
对数据更加保密安全,并不会向本地储存任何数据,将cache和creditials储存在内存中,并和Session 绑定,当Session销毁时,对应的数据也会被销毁。 - backgroundSession
可以时APP处于后台时继续数据传输,其行为与defaultSession类似,但是所有的数据传输均由一个非本APP的进程来管理。也有一些功能上的限制。
NSURLSessionTask
- NSURLSessionDataTask
- NSURLSessionDownLoadTask
- NSURLSessionUploadTask
NSURLSession网络请求步骤:
创建NSURLSessionConfig对象--用创建的config对象配置初始化NSURLSession--创建NSURLSessionTask对象并resume执行,用delegate或者block回调返回数据。
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc] init]];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:[NSURL URLWithString:bigPic]];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request];
[dataTask resume];
AFNetworking
AFNetworking由五个模块组成:
- Reachability网络状态监听模块: AFNetworkReachabilityManager
- NSURLSession网络通信模块(核心模块): AFURLSessionManager, AFHTTPSessionManager
- Security网络通讯安全策略模块: AFSecurityPolicy
- Serialization 序列化、反序列化模块:AFURLResponseSerialization
- UIKit