使用block和协议实现网络层的封装
来源:互联网 发布:jquery.cookie.js插件 编辑:程序博客网 时间:2024/06/03 23:01
- 一直以来都是的完全的block实现网络层的封装,知道看了这篇文章,确实存在了页面已经返回来请求都还在,所以使用了协议来封装,感觉挺不错的,所以分享一下.
- 如果没有耐心看完可以直接拉到底部demo地址.
实现
- 在项目的info.plist加入:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSExceptionDomains</key> <true/> </dict>
- 使用cocoapods导入AFNetworking
- 封装的结构入下图:
LXKBaseNetwork
LXKBaseNetwork.h
- LXKBaseNetwork主要是对Get和Post请求的枚举值,请求成功和失败的block回调,上传和下载进度的block的回调,如下图:
- LXKBaseNetwork继承AFHTTPSessionManager,封装了单例,get和post请求,多图的上传(我们后台支持单图也多图传递),入下图:
LXKBaseNetwork.m
- 单例的实现:
- get和post请求的实现:
LXKNetworkProtocol
- 主要是对请求的类型,请求的成功,网络失败,状态不正确的失败的封装,如下图:
LXKNetworkModel
- 在这儿主要是指定URL地址,请求的类型,可以有很多,只是因为项目原因只要了这两个,如下图:
LXKNetworkHelper
- 对于请求的二次封装,封装了提示加载的框,但是在这个例子里面去掉了提示框这一部分.如下图:
- 对于.m文件的实现,截取了get和post请求,和对于模型参数的处理,如下图:
在基类里面的使用
- LXKBaseViewController是我的基类,将方法封装在基类里,如下图:
- .m主要是实现,这个是父类,可以在把请求网络错误和状态不唯一都在父类里面实现占位页面或者提示,在子类只需指定参数和接口类型就可以使用了,如果可以也只需要实现请求成功的数据,在子类调用如下图:
使用需要的补充
- 使用的时候请补充LXKNetworkHelper中API_PREFIX前缀,模型的中指定的URL地址链接,如下图:
demo网址:https://github.com/vistaLin/-LXKNetworkPotocolDemo-
阅读全文
0 0
- 使用block和协议实现网络层的封装
- 43.用Block和协议对网络请求简单封装
- 关于如何使用block实现和协议一样的功能分析
- Android:网络层的封装(使用volley)
- Android:网络层的封装(使用OkHttp)
- 网络各层使用的协议
- 网络层协议和传输层协议
- osi网络模型 协议层 数据封装
- 网络层的协议
- Android 网络层的封装
- NETWorkingTool 网络封装 协议传值 Block传值
- ZigBee协议栈网络层的研究与实现
- ZigBee协议栈网络层的研究与实现
- 网络层的一些协议
- 网络层的一些协议
- 常用网络层的协议
- 网络的七层协议
- 协议和block的区别
- 实现上传图片并预览功能
- MQ消息完整流程
- springboot filter使用配置
- springmvc后台如何给前台传json数据
- Go开发之对工程的安排处理
- 使用block和协议实现网络层的封装
- angular.js模态框拖动(2)
- Go游戏服务器开发的一些思考(十):goroutine和coroutine
- 配置lamp环境
- mysql优化,不用怕面试题了
- sqlserver突然出现“远程过程调用失败”
- 静态库与共享库
- 牛顿法
- CheckBox选择按钮