AFNetworking框架实现原理

AFN框架的横空出现是我等程序员请求数据时的一个大招,现在就紧跟我的脚步咱们简要看看其内部原理,先上图,我们再说话:
这里写图片描述
AFN封装了NSURLConnection和NSURLSession的功能,只需一行代码我们就可以轻松愉快的请求数据了还有两个辅助功能就是:安全策略(HTTPS)和网络连接状态(Reachability):
这里写图片描述

我感觉最好的就是Json数据的序列话和反序列话,但是对于XML数据的解析就有点扯淡了!现在我们重点说说这部分:
AFN请求和相应的数据格式已经默认设置好了:
设置请求的数据格式:self.requestSerializer = [AFHTTPRequestSerializer serializer]; // 二进制
设置相应的数据格式:self.responseSerializer = [AFJSONResponseSerializer serializer]; // 默认是JSON
AFN可供选择的请求格式有:
AFHTTPRequestSerializer 二进制的(默认的)
AFJSONRequestSerializer JSON
AFPropertyListRequestSerializer PList
AFN可供选择的 响应的格式:
AFHTTPResponseSerializer 二进制的
AFJSONResponseSerializer JSON(默认的)
AFXMLParserResponseSerializer XMLParser
AFXMLDocumentResponseSerializer XML DOM(仅 MAC 可用)
AFPropertyListResponseSerializer PList
AFImageResponseSerializer 图像
AFCompoundResponseSerializer 组合
对于常规的网络请求数据格式如下(不做任何修改)
-发送数据的格式,就是二进制的
-接收的数据格式,JSON是最流行的数据格式,没有之一!
最坑的就是AFN对于返回数据是XML类型的,顿时傻逼了!!这可怎么办?唯一的办法只有我们自己手动解析了!解析XML文件有两种方式:SAX解析 和 DOM解析,如果我们想要SAX解析的话就设置:manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; 如果我们要DOM解析的话就设置:manager.responseSerializer = [AFHTTPResponseSerializer serializer];但是DOM解析的话只实用于小文件。
如果我们要请求 Image图像数据的话最好实用 SDWebImage框架,因为它的缓存机制是碉堡的。

综上所述:AFN框架的主要作用就是进行数据的传输和简单的数据解析,在这里我们不需要考虑HTTP和线程间的通讯问题,因为返回来的数据就在主线程内。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值