测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2014年12月 |
由Kevin Wu维护。
依赖 | |
JSONModel | >= 0 |
AFNetworking | >= 0 |
基于AFNetworking和JSONModel集成的ModelNetworkClient最低支持iOS 6.0的开发
(该项目来自百度团购团队,经历了两次重构(一次百度团购、一次百度糯米)产生的网络框架,整理后分享给大家)
依赖外部模块:AFNetworking(2.x+) JSONModel
在开始使用ModelNetworkClient之前,你应该了解JSONModel,这样能更好地使用本模块
ModelNetworkClient主要提供以下功能:
1.自动将网络返回数据(NSData、NSArray、NSDictionary)转换为JSONObject,方便外部模块使用
(可选)功能
2.封装应用网络请求的公共参数,对于App来说,大多数时候服务器都会规定一些基础(公共参数:appVersion、apiVersion、location、userId),App端需要每个接口都传递这些参数,ModelNetworkClient对此进行了封装,可以在重载相关函数,快速实现该功能
3.如果你的服务器返回的数据是框架性的数据,使用JSONModel需要重复创建很多文件,本模块提供了数据预处理,比如服务器统一返回如下字段
{
"errorId":0,
'errorMessage':"message",
'data':DataObject
} 你可以把这3个字段处理到同级的JSONModel目录
{
"errorId":0,
'errorMessage':"message",
//其他返回字段对象,去除了data层的包装,节约JSONModel文件建立的工作量
}
4.提供基于请求path的Http请求数据缓存功能,该功能主要用于
a.提升App的离线使用体验
b.为你的App提供一些离线功能(比如 我的糯米券、美团券、其他需要缓存的离线信息)
你可以自定义path生成字段
例如:如果你的请求中存在timestamps时,每次基于path生成的缓存路径都会不同,所以此时的缓存是无效的,你需要在生成path之前,让类似的timestamps字段设置为忽略,这样cache path就不会包含这个字段