/MLSNetwork

网络库

Primary LanguageObjective-CMIT LicenseMIT

MLSNetwork 网络工具


License MIT

MLSNetwork 是什么

MLSNetwork 是个人基于 YTKNetwork 二次修改的 iOS 高性能网络请求库,提供了更高层次的网络访问抽象。

MLSNetwork 提供了哪些功能

相比 YTKNetwork 提供了更多层面的抽象API

基于 YTKNetwork 代码二次修改封装,

  • 支持自定义规则缓存网络请求内容,遵守 MLSNetworkCacheProtocol 并实现协议方法,可配置独立的 Request 也可使用全局 MLSNetworkConfig 配置全局规则。
  • 支持独立 Request 设置服务器和 CDN 的地址
  • 支持网络请求加密和解密。 MLSEncryptProtocol
  • 支持网络日志自定义输出和记录。 MLSNetworkLogProtocol
  • 支持网络数据转模型: MLSNetworkModelProtocol
  • 支持根据特定错误码重试网络请求 MLSNetworkRequest retryCount 属性。
  • 支持统一网络跟数据结构,为了防止根数据不同意,导致上层调用时各种处理。 MLSNetworkRootDataProtocol
  • 支持批量的网络请求发送,并统一设置它们的回调(实现在 YTKBatchRequest 类中)
  • 支持在发起网络请求前,先发起另外一个网络请求,适配场景:Token过期重新获取。 MLSNetworkRequest preRetryRequest 属性。
  • 支持下拉刷新,上拉加载式网络请求,MLSRefreshNetworkRequest
  • 支持 RAC、Coobjc 编程

注意:独立 Request 的配置优先级比全局优先级高,为了模块独立使用而生。

哪些项目适合使用 MLSNetwork

可使用在所有项目中,MLSNetwork 提供两套机制: 一种是配置后网络请求。一种是独立发起网络请求。

  • 配置后网络请求:比较适用于大型项目,可校验证书,加解密,记录日志等功能。
    • 第一种方式:适用于非组件化项目,直接配置 MLSNetworkConfig 即可。
    • 第二种方式:适用于组件化项目,在配置完 MLSNetworkConfig 后,每个组件继承 MLSNetworkRequest 独立出一个或者多个基类 Request, 该模块下网络请求发起以此为准,自定义一些模块化网络请求参数。例如:请求头,加解密等配置信息。
  • 独立简答网络请求:比较适用于小型项目,没有过多要求,只需要获取网络数据,全部使用内部默认配置。

MLSNetwork 基本**

参考 YTKNetwork 后,并基于作者本人的工作经验,进行一系列常用功能的封装

  • 利用重试机制,保证网络请求的健壮性,服务器临时宕机重启的几秒钟,请求不到数据,主动帮助用户重试网络请求,提升用户体验。
  • 抽取全局Config配置到 Request 中,独立Request,降低与 Config 的耦合度,适配组件化多样定制化请求。
  • 继承 YTKNetwork 的每个网络请求都是一个对象的**,独立网路请求模块,网络层,模型层独立,可独立开发,不影响主项目工程的使用,可提前准备本地Mock数据,不依赖服务端的研发进度。
  • 独立出各种协议,提升可扩展性,保证外界使用的独立性,降低耦合度。日志处理、字典转模型、加解密、根数据统一等。

MLSNetwork 安装

你可以在 Podfile 最上方增加source源,

source 'https://github.com/Minlison/Specs.git'

加入下面一行代码来使用 MLSNetwork

pod 'MLSNetwork'

或者直接使用源码依赖

安装要求

MLSNetwork 版本 AFNetworking 版本 最低 iOS Target 注意
1.x 3.x iOS 8 要求 Xcode 8 以上

相关的使用教程和 Demo

可参考项目中的Demo项目,不再做过多代码式的 Demo 文档,也可参考 YTKNetwork 的文档

作者

MLSNetwork 属于个人研发

感谢

MLSNetwork 基于 YTKNetwork 进行开发,感谢他们对开源社区做出的贡献。

协议

MLSNetwork 被许可在 MIT 协议下使用。查阅 LICENSE 文件来获得更多信息。