美文网首页 Android知识进阶(遥远的重头开始)
Android-Retrofit2+Rxjava2之网络请求数据

Android-Retrofit2+Rxjava2之网络请求数据

作者: MonkeyLei | 来源:发表于2019-07-12 09:42 被阅读3次

MVP结构也用了很久了。也有用MVVM的,MVC的,不过目前MVC用的比较少了(界面里面代码偏多,不好维护)。关于MVVM是谷歌WPF早年提出的Presentation Model与系统结合的方式,解耦了View和Model。 Android里面主要是利用DataBinding完成双向绑定。

关于模式基本结束推荐一篇文章,小白感觉还可以,至于以后会不会靠MVVM,看后面的具体实践再说和MVP的优缺点吧。

https://www.jianshu.com/p/9df92995ee26

小白的两个公司项目都是MVP,感觉还好,虽然可能presenter会比较多。但是如果你的数据不会怎么变化的话,完全还可以利用泛型进行网络的二次封装,有可能几个请求方法就可以把所有的数据请求都包括,到时候你只需要传传入特定的参数,请求的方式,希望得到的对象类型即可!!还是蛮方便的。。小白的我正在做第三次封装。

第一次封装:关于请求错误的的预处理(无网络,解析错误,安全问题,连接错误,token过期等统一处理);过程中有涉及到cookie的定义读写

第二次封装:封装请求到的数据预处理(根据code进行判断:1. 如果正确返回数据 2.如果错误或者token过期返回失败 3.请求获取的request_time的存储以及传递给下一次请求 4.还可以根据请求增加其他的自定义处理)

将会进行的第三方封装:所有的网络请求基本统一由一个或多个接口提供,主要分为get和post方式,方便维护; 分别根据类型生成不同的服务,利用泛型做统一的请求调用getPostData 、 getGetData即可。不再分特别多的Presenter, 简化下文件和代码。

小白封装涉及到的一些个文件:

image

目前Cookies相关的已经用第三方的CookieJar替代了。不过我们还是可以记录下自己如何拦截和处理cookie。其他的主要就是Retrofit工具类的封装以及相关的数据处理了。

service文件夹里面是具体的网络请求,红色部分就是封装的后数据返回对象:

image

还要利用泛型做类似如下的一些处理:

image

<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">请求的数据根据code进行统一预处理</figcaption>

这里就简单过一下,扫一眼。。泛型小白已经学有个开始篇了,还会深入学下一下。小白目前基本用没问题,但是还没有系统的学习,所以还欠缺很多。 另外关于接口,回调的相关处理也是需要我们思考和整理完善的。 这样我们做封装的时候才能有点游刃有余。

OK,我怕一直写一篇,字数超过了。所以后面我们再挨个看下相关知识点...好烦...

心灵鸡汤:

----幸福就像一个沙漏,你觉得它是在一点一滴的流逝着;还是在一点一滴的累积

相关文章

网友评论

    本文标题:Android-Retrofit2+Rxjava2之网络请求数据

    本文链接:https://www.haomeiwen.com/subject/zywskctx.html