封装Retrofit工具类

来源:互联网 发布:阿里云域名testpage 编辑:程序博客网 时间:2024/06/15 09:49

     这个是Retrofit和Rxjava结合的,首先导入需要的依赖:

观察者Observer,这两种依赖必须同时都用compile 'io.reactivex:rxjava:1.0.14'compile 'io.reactivex:rxandroid:1.0.1'Retrofit的依赖compile 'com.squareup.retrofit2:retrofit:2.0.2'    compile 'com.squareup.okhttp3:okhttp:3.1.2'compile 'com.squareup.retrofit2:converter-gson:2.0.2'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

       先说一下怎么使用吧。

        OkHttpClient client=new OkHttpClient.Builder().build();        RetrofitManager.getInstance(Constant.BASE_URL,client).setCreate(UserUtil.class).getRecycle(21).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(observer);

       工具类:

public class RetrofitManager {    private Retrofit mRetrofit;    private String baseUrl;    OkHttpClient client;//有关拦截器    private static RetrofitManager mRetrofitManager;    private RetrofitManager(){}    private RetrofitManager(String baseUrl,OkHttpClient client){        this.baseUrl=baseUrl;        this.client=client;//有关拦截器        initRetrofit();    }    public static synchronized RetrofitManager getInstance(String baseUrl,OkHttpClient client){//有关拦截器        if (mRetrofitManager == null){            mRetrofitManager = new RetrofitManager(baseUrl,client);        }        return mRetrofitManager;    }    private void initRetrofit() {        mRetrofit = new Retrofit.Builder()                .baseUrl(baseUrl)                .addConverterFactory(GsonConverterFactory.create())                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())                .client(client)//有关拦截器                .build();    }    public <T> T setCreate(Class<T> reqServer){        return mRetrofit.create(reqServer);    }}
    根据自己的需求选择,不用拦截器的话,就把有关拦截器的代码删除。

原创粉丝点击