CBNetworking:源码分析

420 查看

为什么要对AFNetworking进行多一层的封装

对于AFNetworking进行二次封装是很有必要的。事实上,在项目中大量使用第三方网络库是有风险的,因为网络请求的使用遍布整个应用,而一旦该对应的网络库不再更新维护,或者我们有意愿的去更换网络框架,修改将会有着巨大的难以承受的工作量。

这一个框架与其他框架有什么不同

  • 本框架基于AFNetworking3.0的版本进行封装,面向更新的版本。
  • 为网络请求的任务管理做了大量的工作,使得下载上传,或者其他使用环境下的任务管理得以更轻松的实现。
  • 反其道而行,专为Post请求作出了缓存处理,这一部分缓存处理的使用与否,由使用者自行决定。
  • 自定义Get请求的缓存策略,以时间为基准,严格把控缓存的有效性。

接口设计

请求

这里使用了新建NS_ENUM的方式来统一Post和Get接口。

从上面的代码我们可以看到,参数useCache决定着你是否使用Post请求的缓存功能,而即便将其设置为NO,依然会自动开启Get请求的缓存功能。

数据解析方式

上面的NS_ENUM联合上面的方法可以更改数据解析方式,更具灵活性。

文件上传,下载