基于RxJava2+Retrofit2+RxCache的网络请求框架
- 使用RxCache缓存机制,可自定义缓存过期时间,及数据分页缓存等功能。
- 统一的请求错误处理;
- 统一的网络状态判断处理;
- 基于HttpLoggingInterceptor的请求日志打印。
//Rxjava2
implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
//Retrofit2
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
//RxCache
implementation "com.github.VictorAlbertos.RxCache:runtime:1.8.3-2.x"
implementation 'com.github.VictorAlbertos.Jolyglot:gson:0.0.4'
//Okhttp-interceptor
implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'
ApiResponse——封装的返回数据模板(里面的error_code,reason,result名称需要跟后台对应好,通常情况下error_code代码状态码,reason为成功或失败的提示信息,result中为具体的数据,由于数据格式未知所以使用泛型代表)
ApiService——Retrofit的数据请求接口。注意一下每个方法的返回值类型。(我们真正需要的是TestBean中的数据它必须被ApiResponse包装,最后返回Observable类型)
CacheProvider——RxCache的缓存接口,注意它的第一个参数类型必须和Retrofit数据请求接口的返回值类型一样。
OnResultCallBack——请求成功或失败的回调。
ApiException——公共的请求错误处理类。
HttpSubscriber——公共的请求订阅者。
HttpManager——发起请求的管理类。