retrofit+Rxjava 封装

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);
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值