okhttp学习笔记--网络框架封装
2016-12-22 21:45
274 查看
最近公司一个项目的Android端,第一个版本沿用的公司之前的网络框架,在Volley基础上做的简单封装;之后研究了一下okhttp的源码和Retrofit,自己封装了个基于okhttp的简单框架。
简单总结一下自己框架封装过程中的一些收获:
1.网络框架封装一般要包括第三方网络客户端,回调处理,数据解析,工具类封装,此外Retrofit又把网络接口封装成了服务,引入了服务的概念。
2.相对volly,okhttp在实现上(类的定义等)更便于理解http协议,对连接池,SSL,Proxy等有很好的支持,责任链式的请求处理与分层的网络结构很类似,处理逻辑比较清晰,支持Http2.0。
3.对于回调处理,一般的网络请求都是异步的,android界面更新都是在主线程,都要通过Handler处理;Retrofit默认使用MainThreadExcuter,实际上也是使用Handler处理,从外Retrofit采用CallAdapter使得可以介入其他的异步框架如RxJava实现了良好的可扩展性。
4.数据解析,一般的开发项目都会采用Json格式,数据解析采用的第三方库一般有gson,阿里的fastjson等,Retrofit的convertFactory设计又体现了很好的扩展性。
5.工具类是直接面向我们的业务代码的,现在最流行的应该是链式调用型的封装,代码结构清晰,逻辑上易读。
6.注意的一些方:框架的可扩展性,代码模块间的耦合性
7.考虑到新的框架的稳定性,先保持封装框架对volley的支持,在最小代码改动下能够支持volly和okhttp;
同时从代码隔离上考虑,不希望第三方的类深入到逻辑代码中,在封装框架中添加一个中间层作为业务层与第三封框架的隔离层(使用桥接模式),在中间层主要把一些易变量(URL,header,parameter)传递给第三方框架请求,在Retrofit中也可以看到这种处理;
使用范型和fastJson实现数据解析,扩展性还有待改进相较Retrofit这里只需要回调处理类使用范型。
项目中主要使用的请求方式是post,对其他方式没有实现,post对应的三种Json实现unformed,MultiPart,Json参数,okhttp都提供了很好的支持
简单总结一下自己框架封装过程中的一些收获:
1.网络框架封装一般要包括第三方网络客户端,回调处理,数据解析,工具类封装,此外Retrofit又把网络接口封装成了服务,引入了服务的概念。
2.相对volly,okhttp在实现上(类的定义等)更便于理解http协议,对连接池,SSL,Proxy等有很好的支持,责任链式的请求处理与分层的网络结构很类似,处理逻辑比较清晰,支持Http2.0。
3.对于回调处理,一般的网络请求都是异步的,android界面更新都是在主线程,都要通过Handler处理;Retrofit默认使用MainThreadExcuter,实际上也是使用Handler处理,从外Retrofit采用CallAdapter使得可以介入其他的异步框架如RxJava实现了良好的可扩展性。
4.数据解析,一般的开发项目都会采用Json格式,数据解析采用的第三方库一般有gson,阿里的fastjson等,Retrofit的convertFactory设计又体现了很好的扩展性。
5.工具类是直接面向我们的业务代码的,现在最流行的应该是链式调用型的封装,代码结构清晰,逻辑上易读。
6.注意的一些方:框架的可扩展性,代码模块间的耦合性
7.考虑到新的框架的稳定性,先保持封装框架对volley的支持,在最小代码改动下能够支持volly和okhttp;
同时从代码隔离上考虑,不希望第三方的类深入到逻辑代码中,在封装框架中添加一个中间层作为业务层与第三封框架的隔离层(使用桥接模式),在中间层主要把一些易变量(URL,header,parameter)传递给第三方框架请求,在Retrofit中也可以看到这种处理;
使用范型和fastJson实现数据解析,扩展性还有待改进相较Retrofit这里只需要回调处理类使用范型。
项目中主要使用的请求方式是post,对其他方式没有实现,post对应的三种Json实现unformed,MultiPart,Json参数,okhttp都提供了很好的支持
相关文章推荐
- 学习笔记 Tianmao 篇 OkHttp 网络的使用的简单封装 获取Json用GSON来解析
- Android 的OkHttp 网络请求框架的学习封装
- Android 网络框架学习之OKHttp
- Volley网络框架学习笔记(四)
- OkHttpUtils - 封装了okhttp的网络框架
- android网络请求框架的学习之路——浅谈对Volley,OkHttp,Retrofit的了解与对比 标签: androidVolleyOkhttpRetrofit网络请求框架
- 微信开发学习笔记之五(CI框架 常用封装)
- 封装了okhttp的网络框架,支持大文件上传下载,上传进度...
- 基于Retrofit、OkHttp、Gson封装通用网络框架
- 安卓网络请求框架okHttp的使用与封装
- OkHttpUtils - 封装了okhttp的网络框架
- Volley网络通信框架学习笔记(二)
- Android 开发框架之okhttp 网络框架的学习
- Android 学习笔记之AndBase框架学习(二) 使用封装好的进度框,Toast框,弹出框,确认框...
- 【安卓】Okhttp网络框架笔记
- Android网络通信框架Volley的学习笔记
- Volley网络框架学习笔记(三)
- Android 学习笔记之AndBase框架学习(四) 使用封装好的函数实现单,多线程任务
- okhttp,Android网络框架学习之OKHttp
- 学习笔记 Tianmao 篇 使用简单封装后的自定义OkHttp 获取json被GSON解析后的数据