AFNetworking简述

AF的代码结构大部分人应该都了解,这里梳理,整体代码有这么几部分:

  • AFURLSessionManager/AFHTTPSessionManager

    这里就是AF代码的核心了,主要负责网络请求的发起,回调处理,是在系统网络相关API上的一层封装。大部分逻辑是在AFURLSessionManager里面处理的,AFHTTPSessionManager则是专为HTTP请求提供了一些便利方法。如果需要扩展其他协议的功能(比如FTP协议),可以考虑从AFURLSessionManager创建一个子类。

  • AFURLRequestSerialization/AFURLResponseSerialization

    这两兄弟主要处理一些参数序列化相关的工作。AFURLRequestSerialization是将传入的参数构造成NSURLRequest,比如自定义的header,一些post或者get参数等等。 AFURLResponseSerialization主要是将系统返回的NSURLResponse处理成我们需要的responseObject,比如json、xml、image等等

  • AFSecurityPolicy

    处理https相关的公钥和验证逻辑。目前由于苹果ATS的开启,基本HTTPS已经成为标配。虽然通常直接使用CA来验证服务器公钥的情况下,不需要我们额外做什么配置。但是从这里出发,顺便考察一下HTTPS相关的知识点,感觉也比较常见,具体面试题可看下文

  • AFNetworkReachabilityManager

    这个其实是比较独立的一个模块了,提供获取当前网络状态的功能。

  • UIKit+AFNetworking

    这里主要是通过Category来提供了一下UIkit的便利方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容