天天看点

Retrofit网络框架:结合RxJava、Gson简化网络请求

目录

​​1、Retrofit进行基础网络请求​​

​​2、添加OkHttp配置:统一配置超时时间、认证等​​

​​3、添加Gson解析​​

​​4、RxJava简化处理流程​​

​ Retrofit是一个流行的网络请求框架,可以将声明的网络请求接口通过动态代理的方式生成具体的请求,内部实际使用OkHttp进行网络请求,可以使用Gson处理请求的数据,使用RxJava进行线程的切换。下面从基础的Retrofit请求开始,依次添加OkHttp配置、Gson、RxJava简化网络请求。

接口来源:​​和风天气api​​, 网络请求key需要自己申请

​​例子​​

1、Retrofit进行基础网络请求

​ 首先创建一个基础的Retrofit实例:

​ 然后声明网络请求接口:

​ 进行网络请求:

2、添加OkHttp配置:统一配置超时时间、认证等

​ 进行网络请求时需要统一配置超时时间等,同时还需要进行认证(如天气请求时统一的key), 这可以通过添加自定义的OkHttpClient来实现。

​ 于是网络请求接口可以简化为:

​ 同样地,如下进行网络请求:

3、添加Gson解析

​ 网络请求回来的数据需要转成model, Retrofit提供了相关接口,可以通过Gson将请求回来的字符串转成model。

​ 添加依赖:

​ Retrofit创建时增加解析Factory:

​ 网络请求接口可以写成:

​ 于是网络请求如下:

4、RxJava简化处理流程

​ 如果需要对返回的数据进一步处理,那么使用RxJava是一个比较好的选择。RxJava能够方便的进行上下文切换,可以将复杂、耗时的操作放到非主线程中执行,然后在主线程返回结果。

​ 引入RxJava依赖:

​ 将RxJava配置到Retrofit中:

​ 然后修改网络请求接口声明:

​ 于是网络请求如下: