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<String,Retrofit> 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;
|
}
|
|
|
}
|