这里主要介绍了swift版本的网络请求,封装中带有Progress及错误信息处理,缓存等的统一解决方案
简书地址https://www.jianshu.com/p/caa1a57e7423
Demo主要介绍Swift的网络部分,代码已更新到swift5.0
本demo内容可直接用于项目开发
请求均采用 Alamofire
请求封装方式分为:
Alamofire
的上层封装,为本demo推荐方式。我在使用过程中发现moya是极其优美的网络请求方式)加载动画及弹出框采用 MBProgressHUD
在swift4之前,我一直用的是HandyJSON
(下面有介绍)。在swift4之后我把model的解析转到到官方的Codable。
缓存部分没有接入数据库,而是直接用了write to file
,并将缓存封装到网络请求方法中
接口:http://app.u17.com/v3/appV3_3/ios/phone/rank/list 请求方式:get
希望能达到抛砖引玉的效果
也给新学习swift的朋友一个简单的网络处理的方式
大家互相帮助,互相学习
如果对你有帮助还请给个Star,谢谢🙏
2.3 更新到Swift5
2.2 修改文件结构。使用moya时请配置MoyaConfig和HttpRequest文件。这是一个demo,不是一个拿来即用的三方库,所以请认真阅读代码,根据自己的项目做出更改和优化
2.1 Codable
跨类型解析:Int
解析成String
, String
解析成Int
2.0 更新到swift4,重新整理代码
1.2 新增moya
的demo
1.1 新增链式请求的封装 链式请求可以只组合需要的函数,本身默认为常用方式,简化常用的链式调用; 对于非默认值的请求可以自定义进行设置; 方便添加自定义行为,利于扩展;
1.0 类OC中的AFN封装 利于OC转swift的同学学习。 其中对返回值做了JSON和String两种解析,String是为了方便实用HandyJSON,不使用HandyJSON可以自行删除部分代码