作者:林丰岚_324 | 来源:互联网 | 2023-10-11 18:57
Retrofit+Rxjava网络封装
DEMO下载地址
框架使用说明
一.项目中使用到的三方库
- com.squareup.retrofit2:retrofit:2.1.0
- com.squareup.retrofit2:adapter-rxjava:2.1.0
- com.squareup.retrofit2:converter-gson:2.1.0
- com.squareup.okhttp3:okhttp:3.2.0
- com.squareup.okhttp3:logging-interceptor:3.3.1
- io.reactivex:rxjava:1.1.8
- io.reactivex:rxandroid:1.2.1
- com.trello:rxlifecycle:0.6.1
- com.trello:rxlifecycle-components:0.6.1
二.使用步骤
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
NetWorkConfiguration cOnfiguration=new NetWorkConfiguration(this)
.baseUrl(NetWorkApi.baseUrl)
.isCache(true)
.isDiskCache(true)
.isMemoryCache(false)
HttpUtils.setConFiguration(configuration)
NetWorkConfiguration API
>
* baseUrl(String) 设置网络BaseUrl地址
* isCache(boolean) 设置是否开启缓存功能,true为开启,false为关闭
* isDiskCache(boolean) 设置是否进行磁盘缓存
* isMemoryCache(boolean) 设置是否进行内存缓存
* memoryCacheTime(int) 设置内存缓存时间
* diskCacheTime(int) 设置本地缓存时间
* diskCaChe(File,int) 设置本地缓存路径以及最大缓存大小
* connectTimeOut(int) 设置网络超时时间
* connectionPool(int,int,TimeUnit)设置网络线程池
* certificates(InputStream…) 设置Https客户端证书访问
注:如果不进行配置,进行默认设置网络参数!
HttpUtils API
- getInstance(Context) 获取HttpUtils实例
- setConFiguration(NetWorkConfiguration) 设置网络配置器
- setLoadDiskCache(boolean) 设置断网时是否加载本地缓存数据
- setLoadMemoryCache(boolean) 设置有网络时是否优先加载内存缓存
- getRetofitClinet() 创建RetrofitClient对象
- setCertificates(InputStream…)设置Https客户端证书访问
- setDBugLog(boolean) 设置是否打印网络日志
- addCOOKIE() 设置COOKIE
RetrofitClient API
>
* setBaseUrl(String) 设置BaseUrl地址
* builder(Class
RxJava API
compose:是唯一一个能够从数据流中得到原始Observable的操作符,所以,那些需要对整个数据流产生作用的操作(比如,subscribeOn()和observeOn())需要使用compose()来实现。
.compose(new DefaultTransformer>())
作用:对服务器返回的数据进行预处理
1.数据获取正常–>call方法中根据与服务器约定判断数据是否合法 !不合法,抛出自定义异常进行处理!
2.数据获取失败–>onErrorResumeNext方法,抛出自定义异常进行处理!
.compose(mView.>bindToLifecycle())
作用:Activity或者Framgnet的生命周期与Observable进行绑定
RxSubscriber 回调类
@Override
public void onSuccess(List columnDetails) {
L.e("数据为:" + columnDetails.toString());
}
如果网络数据访问正常回调onSuccess方法,获取到对应的Java Bean
@Override
public void onError(ResponeThrowable e) {
L.DEBUG = true;
L.e("错误信息:" + e.message);
}
如果网络数据访问失败回调onError方法,获取到自定义异常ResponeThrowable信息,可以通过e获取到code和message等!