package com.android.app_base.http; import androidx.collection.CircularArray; import java.util.HashMap; import java.util.Map; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * @author Ljj * @date 2023.03.02. 14:11 * @desc Retrofit管理,可以有不同的 baseUrl */ public class RetrofitManager { private static volatile RetrofitManager instance; private final Map retrofitMap; private OkHttpClient mClient; public static RetrofitManager getInstance(){ if (instance == null) { synchronized (RetrofitManager.class) { if (instance == null) { instance = new RetrofitManager(); } } } return instance; } private RetrofitManager(){ retrofitMap = new HashMap<>(); mClient = OkHttpHelper.getOkHttpClient(); } /** * 获取Retrofit对象 */ public Retrofit getRetrofit(String baseUrl) { Retrofit retrofit = retrofitMap.get(baseUrl); if (retrofit == null) { retrofit = new Retrofit.Builder() .client(mClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .baseUrl(baseUrl) .build(); retrofitMap.put(baseUrl, retrofit); } return retrofit; } /** * 设置 自定义OkHttpClient */ public RetrofitManager setOkHttpClient(OkHttpClient client) { this.mClient = client; return instance; } }