我相信学习iOS超过半年以上的同学们应该都用过这个库,现在市场上目前大多数的app,不吹逼至少百分之98以上都用这个库,为什么这么火呢?它提供给大家的公共方法就是那么好吗?大家都真的了解里面的实现原理和思想吗?难道不想进一步的知道和发掘内在的东西吗?

我也是学习iOS的,我相信只要是抱着以后将来不说5年,3年之内还想一直干iOS的朋友,应该都想知道这个东西到底是什么!下面我们就来一一分析吧。

在github上面的stars也是居高不下的!

下面自己测试下:

一般用到最多的就是这些,那么这些是什么东西呢?

其实AFN中分为5个具体的模块:
1 AFURLSessionManager/AFHTTPSessionManger:网络通信模块

2 Reachability : 网络状态监听模块

3 Security:网络通信安全策略模块

4 Serialization: 序列化和反序列化模块

5 其实还有一个重大的模块: UIKit: 对于iOS UIKit库的扩展

这里面的核心就是:1 网络通信模块

这个AFURLSessionManager  是围绕着 NSURLSession 封装的,其他的都是围绕配合它使用的一个扩展的工具包。

AFHTTPSessionManager 是继承AFURLSessionManager ,一般的网络请求都是用它

在AFURLSessionManager的初始化的方法中:

上面的部分代码函数有点看不懂,接下来先看看它里面我们常用的网络请求方法:

在这里可以清楚的看到

就直接跳进去看看到底做了些什么东西

注意了这个方法做了两件事:

1.用self.requestSerializer和各种参数去获取了一个我们最终请求网络需要的NSMutableURLRequest实例。

2调用另外一个方法dataTaskWithRequest去拿到我们最终需要的NSURLSessionDataTask实例,并且在完成的回调里,调用我们传过来的成功和失败的回调。

好了,接下来我们先来分析下刚才第一个requestSerializer 中的request的请求方法,看看它到底做了哪些事情?

AFNetworking框架-详细解析相关推荐

  1. ImageIO 框架详细解析

    ImageIO框架详细解析(一) -- 基本概览 ImageIO框架详细解析(二) -- 使用ImageIO基础 ImageIO框架详细解析(三) -- 创建和使用图像源 ImageIO框架详细解析( ...

  2. CFNetwork 框架详细解析

    1. CFNetwork框架详细解析(一) -- 基本概览 2. CFNetwork框架详细解析(二) -- CFNetwork编程指导之简介(一) 3. CFNetwork框架详细解析(三) -- ...

  3. HealthKit 框架详细解析

    HealthKit框架详细解析(一) -- 基本概览(一) HealthKit框架详细解析(二) -- 基本概览(二)

  4. IOS开发基础之使用AFNetworking框架实现xml文件的解析

    IOS开发基础之使用AFNetworking框架实现xml文件的解析 info.plist加入这行代码 <key>NSAppTransportSecurity</key> &l ...

  5. OpenCL编程详细解析与实例

    OpenCL编程详细解析与实例 C语言与OpenCL的编程示例比较 参考链接: https://www.zhihu.com/people/wujianming_110117/posts 先以图像旋转的 ...

  6. 深度学习目标检测详细解析以及Mask R-CNN示例

    深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...

  7. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  8. IOS开发基础之使用AFNetworking框架下载服务器资源图片

    IOS开发基础之使用AFNetworking框架下载服务器资源图片 info.plist加入这句 <key>NSAppTransportSecurity</key> <d ...

  9. Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析

    前言: 本文也做了一次标题党,哈哈,其实写的还是很水,各位原谅我O(∩_∩)O. 介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看 ...

  10. 图像视频信息库改直播服务器,短视频直播系统,开发流程详细解析

    原标题:短视频直播系统,开发流程详细解析 短视频直播系统的开发也分Android端和iOS端,不同端口对应不同的开发方式,使用不同的开发协议,与直播系统的开发流程相同,也是分五个步骤,今天就给大家详细 ...

最新文章

  1. 《民国枭雄杜月笙》—— 听后总结
  2. WordPress建站指南
  3. web.xml中的主要元素说明(listener, filter, servlet)
  4. 计算机算法设计与分析 N后问题
  5. Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
  6. 证明矩阵的秩=行秩=列秩
  7. 大学课程 | 《计算机网络》知识点超详细总结
  8. PPT汇报片配音及视频格式生成方法
  9. Android View 监听宿主生命周期
  10. 小米8开机android正在启动不了,小米无法开机解决办法【图文教程】
  11. 记一次jstack线程诊断
  12. 使用网上成熟的【MySqlBackup】组件,通过WEB网页操作,备份远程计算机中的数据库到C:\inetpub\wwwroot文件夹下,系统汇报错误(访问被拒绝),该如何解决呢?
  13. excel文件不能编辑怎么回事?
  14. Python ord函数
  15. 拒绝无脑跳转“下载某度APP“!
  16. TC---教学知识与能力
  17. 技术话题(1)PROFINET协议
  18. 鲁大师2015官方版 v5.8.14.1085 电脑版​
  19. 企业即时通讯软件,如何让沟通协作更加安全高效?
  20. 转贴:网友line写的火鸟字幕合并器教程

热门文章

  1. Leetcode题库169.多数元素(c实现)
  2. IDEA配置git环境
  3. 监管大屏系统_餐饮公示大屏广告位招商正式启动!
  4. java转换工具类_Java数据转换工具类
  5. java 中格式化小数位数
  6. Oracle统计信息的导出、导入
  7. 昕灵感应流行坊(Shop.25941.Cn)^_^全新开张
  8. 使用IDEA创建一个Servlet应用程序
  9. CSS样式和class应用
  10. SQL SERVER逆向工程将数据库导入PowerDesigner