public class RetrofitClient { private static final RetrofitClient ourInstance = new RetrofitClient(); private static Retrofit.Builder builder; private Retrofit retrofit; private String baseUrl = API.BANNERAPI; private RetrofitService retrofitService; public static RetrofitClient getInstance() { return ourInstance; } private RetrofitClient() { /*retrofit = new Retrofit.Builder() .baseUrl(baseUrl)//基础url .addConverterFactory(GsonConverterFactory.create())//将返回的数据转为Gson .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//添加Rxjava的回调 .build();*/ changeApiBaseUrl(baseUrl); } public void changeApiBaseUrl(String newApiBaseUrl) { baseUrl = newApiBaseUrl; builder = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//添加Rxjava的回调 .baseUrl(baseUrl); Log.i("aaa", baseUrl + ""); } private RetrofitService getRetrofitService() { retrofit = builder.build(); retrofitService = getService(RetrofitService.class); return retrofitService; } private <T> T getService(Class<T> cls) { Log.i("aaa", retrofit.baseUrl() + ""); return retrofit.create(cls); } public Subscription getReg(Subscriber<BannerBean> subscriber) { changeApiBaseUrl(API.BANNERAPI); getRetrofitService(); return retrofitService.loadBanner() .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(subscriber); } public Subscription getDesigner(String url,String version,Subscriber<DesignerBean> subscriber) { changeApiBaseUrl(url); getRetrofitService(); return retrofitService.loadDesignerBean(version) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(subscriber); } public Subscription getThree(Subscriber<ListDataBean> subscriber) { changeApiBaseUrl(API.LISTDATAAPI); getRetrofitService(); return retrofitService.loadThree() .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(subscriber); } }
retrofit+Rxjava 封装
最新推荐文章于 2024-03-31 15:51:44 发布