安卓篱笆

标题: 安卓高级开发之rxjava+retrofit+okhttp [打印本页]

作者: GuiTarvvm2098    时间: 2017-11-30 04:37
标题: 安卓高级开发之rxjava+retrofit+okhttp
本文讲述如何使用rxjava2+rxandroid+retrofit2+okhttp3搭建网络框架,据说他们是绝配,我自己目前使用的还是okhttp3,至于使用不使用,我们都应该会,他们具体的相关知识不过多解释,大家可以逐个学习并了解。

[attach]456[/attach]

第一步:当然是添加依赖了,在app下的build.gradle添加就行了,很简单,如下图设置,没有其他额外配置。

[attach]457[/attach]

第二步,封装retrofit2网络请求设置。单例模式,全局只使用一个网络请求来操作。

[attach]458[/attach]

其中addCallAdapterFactory(RxJava2CallAdapterFactory.create())是添加rxjava转换器, ApiService就是retrofit2请求的具体接口参数方法等。okHttpClient只是简单的创建了一下,可以添加拦截器,cookie,以及支持https等等,大家可以自行优化.

retrofit2默认使用okhttp,相关依赖无需集成,retrofit2自带了。

ApiService的相关代码见下图:

[attach]459[/attach]

参数建议大家都用这样可以灵活的传入参数,参数格式就是map键值对形式。返回值我就简单的用了okhttp的ResponseBody,因为我直接返回的是字符串数据,大家也可以根据服务器的返回数据来进行具体的封装成实体类这在里返回。

第三步:使用rxjava2异步发起请求的封装

先上代码:


[attach]460[/attach]

为了方便集中管理维护多个请求方法,我将请求统一放在了httpCenter类中,需要请求的地方调用此类即可。parm就是需要传入的键值对参数。RequestParam只是继承了map,没什么讲的哈。

[attach]461[/attach]

这一句就是使用rxjava2进行发送请求了,请求结果发送给我们上层传入进来的Observer.

第四步:调用

[attach]462[/attach]

红框部分就是具体的调用方法了。是不是很简单,结果直接返回在onNext方法中。然后进行处理即可。

我学了大半天,除了他们各自的知识,大概就了解了这么多,具体的优化还有很多啦,比如说错误处理,支持https等。

需要源码的话:微chat号【图开森】,发送网络请求源码+邮箱 我可以发给您。写的不是多好,但是真的很适合想入门的同学学习了。




欢迎光临 安卓篱笆 (http://www.okapk.cn/) Powered by Discuz! X3.2