应用拦截器,Retrofit,Rxjava2,Gson解析、单例模式
依赖:
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'
implementation 'io.reactivex.rxjava2:rxjava:+'
implementation 'io.reactivex.rxjava2:rxandroid:+'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
import java.util.concurrent.TimeUnit; import bwie.com.api.HomeApi; import bwie.com.common.Common; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitFactory { private static RetrofitFactory retrofitFactory; private static HomeApi homeApi; private RetrofitFactory(){ OkHttpClient okHttpClient = new OkHttpClient.Builder() .connectTimeout(5000,TimeUnit.SECONDS) .readTimeout(5000, TimeUnit.SECONDS) .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(Common.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .client(okHttpClient) .build(); homeApi = retrofit.create(HomeApi.class); } public static RetrofitFactory getINSTANCE(){ if(retrofitFactory == null){ synchronized (RetrofitFactory.class){ if(retrofitFactory == null){ retrofitFactory = new RetrofitFactory(); } } } return retrofitFactory; } public HomeApi getHomeApi(){ return homeApi; } }