iOS第三方 - AFNetworking_2.0版 01:原理
AFNetworking 的主要部分
1 - AFNetworking.h:这是 AFNetworking 的公共头文件,在使用 AFNetworking 库时可直接在 Prefix.pch 文件中引入
2 - AFSecurityPolicy.h:这个类主要是为网络请求添加 SSL 安全验证。SSL 安全验证类型有三种(默认是 AFSSLPinningModeNone 类型)另外通过 SSL证书 和 密钥 可以增加请求的安全性,避免请求被劫持和
3 - AFNetworkReachabilityManager.h:这个类和苹果官方提供的 Reachability 类功能类似,但是功能更加强大,不仅增加了更多的公共属性,也增加了状态变更闭包操作,还增加了通知标志串,用过 Reachability 应该能够很快理解并爱上这个类
4 - AFURLConnectionOperation.h:它实现了 NSURLConnection 的全部代理方法,所执行的是单个网络请求的操作
5 - AFHTTPRequestOperation.h:这是 AFURLConnectionOperation 的子类,主要针对 HTTP 和 HTTPS 类型的请求,这也是最常用的请求操作
6 - AFHTTPRequestOperationManager.h:这是 AFHTTPRequestOperation 的一个管理类,细化了不同类型的请求操作(GET、HEAD、POST、PUT、PATCH、DELETE)。通过这个管理类创建的网络请求操作都会被加入到 operationQueue 中执行
7 - AFURLSessionManager.h:这是 AFNetworking 实现的 NSURLSession 的一个管理类,在这个类里面已经实现了全部相关的 NSURLSession 代理方法,NSURLSession 是 iOS7 新增加的用于网络请求相关的任务类
8 - AFHTTPSessionManager.h:这是 AFURLSessionManager 的一个管理类,针对 HTTP 细化了不同类型的请求操作(GET、HEAD、POST、PUT、PATCH、DELETE),因为 NSURLSession 是 iOS7 新增加的用于网络请求相关的任务类,所以仅针对 iOS7 系统时可考虑优先使用这个管理类替代 AFHTTPRequestOperationManager。如果需要考虑向前兼容,还是需要使用 AFHTTPRequestOperationManager
9 - AFURLRequestSerialization.h:这个文件主要定义了一些用于网络请求的协议和类,其中包括了请求格式、请求参数以及相关请求设置的方法
10 - AFURLResponseSerialization.h:这个文件主要定义了一些网络返回数据格式以及解析的协议和类,包括 JSON、XML、Image 等格式的返回数据获取和格式解析等
UIKIt+AFNetworking
1 - 它是 AFNetworking 针对 UIKit 部分系统控件做的类别扩展,包括 1 个管理类定义和 8 个类别扩展
① UIKit+AFNetworking.h:这是 UIKit+AFNetworking 的公共头文件,如果需要使用 AFNetworking 的 UIKit 扩展时可直接在 Prefix.pch 文件中引入,或者在工程的相关文件中引入
② AFNetworkActivityIndicatorManager.h 这个类主要是为了自动显示和隐藏请求时的状态提示,如果你确实需要它的话用这个类还是很方便的,使用方法也很简单,只要在 AppDelegate application:didFinishLaunchingWithOptions: 方法中添加一句代码即可
③ UIActivityIndicatorView+AFNetworking.h:这个类别为网络请求的状态显示增加了两个方法,通过这两个方法可以根据当前任务的状态或操作的状态决定网络请求状态的显示与隐藏
④ UIAlertView+AFNetworking.h:和上面的类别类似,不过这个类别主要是为 UIAlertView 增加了几个方法,当相关的网络任务和请求操作发生错误时,会弹出一个 UIAlertView。虽然 iOS7 的 UIAlertView 看上去温柔很多,很我个人还是很讨厌这个粗暴的弹出提示,我同样不喜欢转圈圈的等待提示
⑤ UIButton+AFNetworking.h:这个类别主要是为 UIButton 增加了异步获取网络图片的类别方法,用过类似 EGOImageView 的应该很容易理解
⑥ UIImageView+AFNetworking.h:说曹操曹操到,这个就是 EGOImageView 的 AFNetworking 版
⑦ UIProgressView+AFNetworking.h:同 UIActivityIndicatorView+AFNetworking ,只是这个类别是针对 UIProgressView
⑧ UIRefreshControl+AFNetworking.h:同 UIActivityIndicatorView+AFNetworking ,只是这个类别是针对 UIRefreshControl 的。UIRefreshControl 是 iOS7 新增加的下拉刷新显示控件,通过这个类别可以根据网络的行为和请求结果决定 UIRefreshControl 的显示状态
⑨ UIWebView+AFNetworking.h:它为 UIWebView 的载入请求增加了几个类别方法,便于决定请求成功失败如何显示,以及请求过程中等待状态的显示等
AFNetworking 2.0 | AFNetworking 3.0
1 - AFNetworking 3.0 之前,底层是通过封装 NSURLConnection 来实现的;AFNetworking 3.0 之后,也就是在 iOS 9.0 之后,NSURLConnection 被弃用,苹果推荐使用 NSURLSession 来管理网络请求。AFNetworking 3.0 之后底层就是通过封装 NSURLSession 来实现
2 - 从 AFNetworking 3.0 中之后,下面三个方法被弃用了
① AFURLConnectionOperation 替换为 AFURLSessionManager
② AFHTTPRequestOperation 替换为 AFHTTPSessionManager
③ AFHTTPRequestOperationManager 替换为 AFNetworkReachabilityManager
注:它们的请求方法也跟着改变了,所以 AFNetworking 3.0 以后发生了很大的变化
链接:AFNetworking 2.0
https://pan.baidu.com/s/19ErtoqkmvimRaVFtCZYATw
5lav
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)