AFNetWorking源码分析(一)


最近研究了一下AFNet的源码,AFNetworking建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它拥有良好的架构,丰富的api,以及模块化构建方式,先来看一下AFNetWorking的代码的大致结构吧:
AFNetPng1.png
  • 网络通信模块(NSURLSession)[核心请求库]
  • 网络状态监听模块(Reachability)
  • 网络通信安全策略模块(Security)
  • 网络通信信息序列化/反序列化模块(Serialization)

AFHTTPSessionManager:我们一般做网络请求都是用这个类,但是它本身是没有做实事的,只是做了一些简单的封装,把请求逻辑分发给父类AFURLSessionManager或者其它类去做


AFURLSessionManager 是对 NSURLSession 的封装
1.它通过 AFURLSessionManager dataTaskWithRequest:completionHandler: 等接口创建 NSURLSessionDataTask 的实例
2.持有一个字典 mutableTaskDelegatesKeyedByTaskIdentifier 管理这些 data task 实例
3.使用AFURLSessionManagerTaskDelegate管理进度
4.引入AFSecurityPolicy保证请求的安全
5.引入AFNetworkReachabilityManager监控网络状态

先简单说到这里,后续会继续整理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AFNetworking作为iOS开发中最常用的网络请求框架之一,其内部实现究竟是怎么一步一步实现的呢?现在我们来...
    mrChan1234阅读 360评论 0 0
  • 声明:以下是对所看源码和相关资料的整理 框架组成 AFNetworking作为开发中使用最多的第三方网络库,功能完...
    jinstar520阅读 445评论 0 0
  • 说到AFNetwokring这个强大第三方网络请求库,大家应该都不陌生吧,ios开发、mac开发都经常用,主要是他...
    尘峰的小孩阅读 487评论 0 0
  • 写在开头: 作为一个iOS开发,也许你不知道NSUrlRequest、不知道NSUrlConnection、也不知...
    涂耀辉阅读 98,817评论 172 1,347
  • 每个人的心里 都有一本书, 扉页里的灰尘 便是人们的信仰。 在书的心里, 记忆是灰色, 呈灰尘形态。 感悟,了解 ...
    从没好好活过阅读 262评论 1 1