AFNetworking的实现原理

来源:互联网 发布:mac怎么改 编辑:程序博客网 时间:2024/05/20 00:50

自从使用了第一次使用AFNetworking到现在有些时候了,一直没有深究这个类库,内部的具体实现原理和步骤,虽然不影响使用,总觉得自己很外行,于是,结合前人的经验和API的介绍,大致做一些总结,不一定都对,嘿嘿有可能会有不少错误,多多指教.

1.AFURLConnectionOperation

继承自NSOperation类,将网络请求这个工作放在一个operation上.可以非常有效的帮助我们去控制\观察一个网络请求的的创建\进行\完成\暂停回复\异常等问题状态.

2.AFHTTPRequestionOperation

HTTP或HTTPS协议请求的AFURLConnectionOperation的子类.它封装了可接受状态码和内容的类型,判定一个请求结果是成功或失败,实际上对系统的HTTP网络请求增加了几个HTTP需要用到的参数.

3.AFHTTPRequestOperationManager

这个类是AFN类的核心库.可以帮助我们轻松地完成请求的创建\响应的系列化,网络状态的监控以及安全策略以及每一个请求operation的管理

4.AFURLSessionManager

iOS7 之后,苹果增加了新的网络请求类--NSURLSession。AFN官方推荐iOS 7 或者 Mac OS X 10.9以上的,最好使用该类发起网络请求,取代AFHTTPRequestOperationManager。不过基于目前国内app大都最低适配的 iOS6,该类的用途还不是太广泛。NSURLSession的说明或者使用不再赘述。自行查看API文档。以后有时间再加上该类的使用。

5.AFNetworkReachabilityManager

网络的联通状态监控以及网络的类型.实际是将苹果官方提供的Reachability的类更换一下,防止和系统提供的类的通知名以及类名的冲突.

6.AFSecurityPolicy


7.AFURLRequestSerialization

1)符合这个协议的对象用于处理请求,它将请求参数转换为query string 或是entity body 的形式,并设置必要的header
2)构建multipart请求

8.AFURLResponseSerialization

遵循AFURLResponseSerialization协议的对象,用于验证\序列化响应及相关数据,转换为有用的形式,比如JSON对象\图像\甚至基于mantle的模型对象

先介绍这么多,等我深入学习再分享

0 0