这个是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);
}
}
根据自己的需求选择,不用拦截器的话,就把有关拦截器的代码删除。