RetrofitUtil
public class RetrofitUtil {
//提供一个本地工具类引用
private static RetrofitUtil retrofitUtil;
private final HttpLoggingInterceptor interceptor;
private final OkHttpClient okHttpClient;
private final Retrofit retrofit;
//私有化构造器
private RetrofitUtil() {
//添加拦截器
interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//OkHttpClient
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.readTimeout(5000, TimeUnit.MICROSECONDS)
.writeTimeout(5000, TimeUnit.MICROSECONDS)
.connectTimeout(5000, TimeUnit.MICROSECONDS)
.connectionPool(new ConnectionPool(5, 1, TimeUnit.SECONDS))
.build();
//retrofit
retrofit = new Retrofit.Builder()
.client(okHttpClient)
.baseUrl(Constant.ORDER_PATH)
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
//公有化构造器:供外部类访问
public static RetrofitUtil getRetrofitUtil() {
//DCL模式 :懒汉式
if (retrofitUtil == null) {
synchronized (RetrofitUtil.class) {//线程锁---保证获取对象唯一
if (retrofitUtil == null) {
retrofitUtil = new RetrofitUtil();
}
}
}
return retrofitUtil;
}
public <T> T create(Class<T> service) {
return retrofit.create(service);
}
}
BaseObservaer
public abstract class BaseObserver implements Observer<String> {
public void onSubscribe(Disposable d) {
}
/**
* 执行成功的方法
*
* @param s
*/
@Override
public void onNext(String s) {
onSuccess(s);
}
/**
* 执行失败的方法
*
* @param e
*/
@Override
public void onError(Throwable e) {
onFailed(e);
}
@Override
public void onComplete() {
}
public abstract void onSuccess(String s);
public abstract void onFailed(Throwable e);
}
Model操作
//获取工具类对象
RetrofitUtil.getRetrofitUtil().create(ILoad.class).showBanner()
//订阅者
.subscribeOn(Schedulers.io())
//观察者
.observeOn(AndroidSchedulers.mainThread())
//订阅对象
.subscribe(new BaseObserver() {
@Override
public void onSuccess(String s) {
bannerModelCallBack.getSuccess(实体类bean对象);
}
@Override
public void onFailed(Throwable e) {
bannerModelCallBack.getFaid(e);
}
});