AFNetworking框架的各个模块的综述

了解AFNetworking之前先了解以下AFNetworking的出处

 
 
 

AFNetworking 是一个用于 iOS 和 OS X 开发的网络请求框架,始于 2011 年 5月,那时候 Mattt 还在 Gowalla 

(Foursquare的竞争对手,后被Facebook收购)工作。基于苹果的一个Demo MVCNetworking,Mattt 开始了

 AFNetworking。当时 ASIHTTPRequest 还很流行,但很快更多的程序员发现 AFNetwoking 是更为现代的解决方

案,所以它逐渐开始流行。现在,AFNetworking 有 9000+ stars,2300+ forks,是 Objective-C 开源社区最火的

框架。

我们先总体来了解一下框架的各个模块

NSURLConnection (兼容iOS 6 & 7)

  • AFURLConnectionOperation – 它继承于 NSOperation,作为NSURLConnection的delegate处理请求回调,做好状态切换,线程管理,可以说是AFNetworking最核心的类
  • AFHTTPRequestOperation – 它继承于 AFURLConnectionOperation,专门用于创建 HTTP 请求。主要多了responseSerializer,暂停下载断点续传,以及提供接口请求成功失败的回调接口。
  • AFHTTPRequestOperationManager – 封装 HTTP 请求的常见方式,GET / POST / PUT / DELETE / PATCH……


NSURLSession (iOS 7)

  • AFURLSessionManager – 创建和管理 NSURLSession 对象,以及此对象的数据和下载/上传等任务,实现对象和任务的代理方法。NSURLSession 的 API 本身有一些局限,AFURLSessionManager 能使其变得更好用。
  • AFHTTPSessionManager – 它继承于 AFURLSessionManager,封装了 HTTP 请求的常见方式,GET / POST / PUT / DELETE / PATCH……
总的来说:为了支持最新的 NSURLSession 接口,同时兼容旧的 NSURLConnection,AFNetwoking将“网络请求”和“任务处理”分离。 AFHTTPRequestOperationManager 和 AFHTTPSessionManager 提供相似的功能,切换很方便,所以从 iOS 6 移植到 iOS 7 会很容易。


序列化(Serialization)

  • AFURLRequestSerialization &&AFURLResponseSerialization – 主要实现请求和解析的序列化。序列化的灵活性允许在网络层添加更多的商业逻辑,自定义更方便。<AFURLRequestSerializer> 和 <AFURLResponseSerializer> 这两个协议,使得使得序列化更简单,功能更强大。


安全(AFSecurityPolicy

  • AFSecurityPolicy  — NSURLConnection已经封装了https连接的建立、数据的加密解密功能,我们直接使用NSURLConnection是可以访问 https网站的,但NSURLConnection并没有验证证书是否合法,无法避免中间人攻击。要做到真正安全通讯,需要我们手动去验证服务端返回的 证书,AFSecurityPolicy封装了证书验证的过程,让用户可以轻易使用,除了去系统信任CA机构列表验证,还支持SSL  Pinning方式的验证

可达性(Reachability)

  • AFNetworkReachabilityManager – 负责监控当前的网络可达性,当网络的可达性发生改变时,提供相应的 callback 和通知。

现在大家对AFNetworking的整体结构有了初步的了解了吧!

下一篇给大家带来AFNetworking源码的详细讲解!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值