知识储备
1.1 AFNetworking 是一个轻量级的iOS 网络通信类库
1.2 AFNetworing 基于 NSOperation和NSURLConnection等类库的基础上, 让很多网络通信的功能变得更简单
1.2.1NSURLConnection用于处理网络连接 1.2.2NSOperation是管理NSURLConnection的, 可以监视一个网络请求的生命周期.
1.3 AFNetworking 支持HTTP请求和基于REST的网络服务(包括 GET / POST / PUT / DELETE 等等)
1.4 支持 ARC
NSOperation
2.1 AFURLConnectionOperation : NSOperation, 实现了 NSURLConnection 的代理方法
2.2 AFHTTPRequestOperation : AFURLConnectionOperation, 针对 request 使用的协议为 HTTP 和 HTTPS .
2.3 AFHTTPRequestOperationManager: 封装了一组调用请求的方法.
iOS7.0以上的系统
3.1 AFURLSesstionManager: 创建, 管理基于 NSURLSessionConfiguration 对象的 NSURLSession 对象的类, 也可以管理 session 的数据, 下载 / 上传任务, 实现 session 和其相关联的任务的 delegate 方法.
3.2 AFHTTPSessionManager: 封装了一组调用请求的方法.
请求和相应的序列化
4.1 AFURLRequestSerialization: 符合这个协议的对象用于处理请求, 它将请求参数转换为 query string 或是 entity body 的形式, 并设置必要的 header.
4.2 AFURLResponseSerialization: 符合这个协议的对象用于验证 / 序列化响应以及相关数据, 转换为有用的形式, 比如: JSON 对象, 图像, 甚至基于 Mantle 的模型对象.
4.3 AFNetworking 可以检测当前网络的可达性.
4.4 AFNetworkingReachabilityManager: 用于监控当前网络的可达性, 提供回调 block 和 notification, 在可达性变化时调用.
提供请求的安全策略
5.1 AFSecurityPolicy: 评估服务器对安全连接针对指定的证书或公共密钥的信任, 将你的服务器证书添加到 app bundle, 防止中间人攻击.
AFNetworking -------- GET 请求
屏幕快照 2016-07-21 下午5.06.51.png
AFNetworking -------- POST请求
屏幕快照 2016-07-21 下午5.36.18.png
AFNetworking --------- 上传文件
屏幕快照 2016-07-21 下午5.39.21.png
AFNetworking ---------- 网络判断