From 7bfcd06377cfb0c798b7260361f4a10b420a1eb5 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Thu, 07 Aug 2025 11:38:16 +0000
Subject: [PATCH] 优化

---
 libmvi/src/main/java/com/runt/open/mvi/retrofit/utils/RetrofitUtils.java |  182 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 143 insertions(+), 39 deletions(-)

diff --git a/libmvi/src/main/java/com/runt/open/mvi/retrofit/utils/RetrofitUtils.java b/libmvi/src/main/java/com/runt/open/mvi/retrofit/utils/RetrofitUtils.java
index 39695c3..ed6097d 100644
--- a/libmvi/src/main/java/com/runt/open/mvi/retrofit/utils/RetrofitUtils.java
+++ b/libmvi/src/main/java/com/runt/open/mvi/retrofit/utils/RetrofitUtils.java
@@ -2,14 +2,18 @@
 
 
 import com.runt.open.mvi.BuildConfig;
-import com.runt.open.mvi.retrofit.Interceptor.AddHeadersInterceptor;
+import com.runt.open.mvi.retrofit.Interceptor.LogEncryptInterceptor;
+import com.runt.open.mvi.retrofit.Interceptor.OpenInterceptor;
+import com.runt.open.mvi.retrofit.Interceptor.EncryptInterceptor;
 import com.runt.open.mvi.retrofit.Interceptor.HttpLoggingInterceptor;
+import com.runt.open.mvi.retrofit.converter.DecryptGsonConverterFactory;
 import com.runt.open.mvi.retrofit.converter.GsonConverterFactory;
 import com.runt.open.mvi.retrofit.net.NetWorkListener;
 
 import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 
+import okhttp3.Interceptor;
 import okhttp3.OkHttpClient;
 import okhttp3.Protocol;
 import retrofit2.Retrofit;
@@ -23,13 +27,11 @@
 
 public class RetrofitUtils {
     static RetrofitUtils instance;
-    Retrofit retrofit/*log输出,驼峰转换*/,unHumpRetrofit/*log输出,不强制驼峰转换*/,
-            unLogRetrofit/*log不输出,驼峰转换*/,unLogHumpRetorfit/*log不输出,不强制驼峰转换*/;
+    Retrofit retrofit/*log输出*/,humpRetrofit/*log输出,强制驼峰转换*/,
+            unLogRetrofit/*log不输出*/,unLogHumpRetrofit/*log不输出,强制驼峰转换*/,
+            encryptRetrofit/*加密log输出*/,humpEncryptRetrofit/*加密log输出,强制驼峰转换*/,
+            unLogEncryptRetrofit/*加密log不输出*/,unLogHumpEncryptRetrofit/*加密log不输出,强制驼峰转换*/;
 
-    OkHttpClient.Builder builder = new OkHttpClient.Builder()
-            .addInterceptor(new AddHeadersInterceptor());
-    OkHttpClient.Builder logBuilder = new OkHttpClient.Builder()
-            .addInterceptor(new HttpLoggingInterceptor());//log打印拦截器
 
     public static RetrofitUtils getInstance() {
         if(instance == null){
@@ -38,34 +40,31 @@
         return instance;
     }
 
-    /**
-     * log输出,gson驼峰转换
-     * @return
-     */
-    public <T> T getRetrofit(Class<T> clas) {
-        if(retrofit == null){
-            retrofit = getRetrofit(getOkHttpClient(logBuilder),
-                    new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(true))) ;
-        }
-        if(!BuildConfig.DEBUG){//正式版 不打印log
-            return getUnLogRetrofit(clas);
-        }
-        return retrofit.create(clas);
+    private Retrofit getRetrofit(OkHttpClient client,Retrofit.Builder builder,String url){
+        return builder
+                //设置OKHttpClient
+                .client(client)
+                //设置baseUrl,注意,baseUrl必须后缀"/"
+                .baseUrl(url)
+                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+                .build();
+    }
+
+    public <T> T getTempRetrofit(Class<T> clas,String url) {
+        Interceptor interceptor = BuildConfig.DEBUG ? new HttpLoggingInterceptor() : new OpenInterceptor();
+        return getRetrofit(getOkHttpClient(new OkHttpClient.Builder().addInterceptor(interceptor)),
+                new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(true)),url).create(clas);
     }
 
     /**
-     * log输出,gson不转换驼峰
+     * log输出
      * @return
      */
-    public <T> T getUnHumpRetrofit(Class<T> clas) {
-        if(unHumpRetrofit == null){
-            unHumpRetrofit = getRetrofit(getOkHttpClient(logBuilder),
-                    new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())) ;
-        }
+    public <T> T getRetrofit(Class<T> clas) {
         if(!BuildConfig.DEBUG){//正式版 不打印log
-            return getUnLogHumpRetorfit(clas);
+            return getUnLogRetrofit(clas);
         }
-        return unHumpRetrofit.create(clas);
+        return getRetrofit(clas,false,false,true);
     }
 
     /**
@@ -73,23 +72,128 @@
      * @return
      */
     public <T> T  getUnLogRetrofit(Class<T> clas) {
-        if(unLogRetrofit == null){
-            unLogRetrofit = getRetrofit(getOkHttpClient(builder),
-                    new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(true))) ;
-        }
-        return unLogRetrofit.create(clas);
+        return getRetrofit(clas,false,false,false);
     }
 
     /**
-     * log不输出,gson不转换驼峰
+     * log输出,gson转换驼峰
+     * @return
+     */
+    public <T> T getHumpRetrofit(Class<T> clas) {
+        if(!BuildConfig.DEBUG){//正式版 不打印log
+            return getUnLogHumpRetorfit(clas);
+        }
+        return getRetrofit(clas,true,false,true);
+    }
+
+    /**
+     * log不输出,gson转换驼峰
      * @return
      */
     public <T> T getUnLogHumpRetorfit(Class<T> clas) {
-        if(unLogHumpRetorfit == null){
-            unLogHumpRetorfit = getRetrofit(getOkHttpClient(builder),
-                    new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())) ;
+        return getRetrofit(clas,true,false,false);
+    }
+
+    /**
+     * 加密log输出
+     * @return
+     */
+    public <T> T getEncrptRetrofit(Class<T> clas) {
+        if(!BuildConfig.DEBUG){//正式版 不打印log
+            return getUnLogEncryptRetrofit(clas);
         }
-        return unLogHumpRetorfit.create(clas);
+        return getRetrofit(clas,false,true,true);
+    }
+
+    /**
+     * 加密log不输出
+     * @return
+     */
+    public <T> T  getUnLogEncryptRetrofit(Class<T> clas) {
+        return getRetrofit(clas,false,true,false);
+    }
+
+    /**
+     * 加密log输出 gson转换驼峰
+     * @return
+     */
+    public <T> T  getHumpEncryptRetrofit(Class<T> clas) {
+        if(!BuildConfig.DEBUG){//正式版 不打印log
+            return getUnLogHumpEncryptRetrofit(clas);
+        }
+        return getRetrofit(clas,true,true,true);
+    }
+
+    /**
+     * 加密log不输出 gson转换驼峰
+     * @return
+     */
+    public <T> T  getUnLogHumpEncryptRetrofit(Class<T> clas) {
+        return getRetrofit(clas,true,true,false);
+    }
+
+    private <T> T getRetrofit(Class<T> clzz,boolean transHump,boolean encrypt,boolean log){
+        Retrofit temp = null;
+        if(transHump && encrypt && log){
+            if(humpEncryptRetrofit == null){
+                humpEncryptRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = humpEncryptRetrofit;
+        }else if(transHump && encrypt && !log ){
+            if(unLogHumpEncryptRetrofit == null){
+                unLogHumpEncryptRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = unLogHumpEncryptRetrofit;
+        }else if(transHump && !encrypt && !log ){
+            if(unLogHumpRetrofit == null){
+                unLogHumpRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = unLogHumpRetrofit;
+        }else if(!transHump && !encrypt && !log ){
+            if(unLogRetrofit == null){
+                unLogRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = unLogRetrofit;
+        }else if(!transHump && !encrypt && log ){
+            if(retrofit == null){
+                retrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = retrofit;
+        }else if(!transHump && encrypt && log ){
+            if(encryptRetrofit == null){
+                encryptRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = encryptRetrofit;
+        }else if(!transHump && encrypt && !log ){
+            if(unLogEncryptRetrofit == null){
+                unLogEncryptRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = unLogEncryptRetrofit;
+        }else if(transHump && !encrypt && log ){
+            if(humpRetrofit == null){
+                humpRetrofit = initRetrofit(transHump,encrypt,log);
+            }
+            temp = humpRetrofit;
+        }
+        return temp.create(clzz);
+    }
+
+    private Retrofit initRetrofit(boolean transHump,boolean encrypt,boolean log){
+        Retrofit.Builder builder = new Retrofit.Builder();
+        builder.addConverterFactory(encrypt ? DecryptGsonConverterFactory.create(transHump) : GsonConverterFactory.create(transHump));
+
+        OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder();
+        if(log && encrypt){
+            httpBuilder.addInterceptor(new LogEncryptInterceptor());//log打印加密拦截器
+        } else if (log && !encrypt) {
+            httpBuilder.addInterceptor(new HttpLoggingInterceptor());//log打印拦截器
+        } else if (!log && encrypt) {
+            httpBuilder.addInterceptor(new EncryptInterceptor());//加密拦截器
+        } else if (!log && !encrypt) {
+            httpBuilder.addInterceptor(new OpenInterceptor());//拦截器
+        }
+        OkHttpClient httpClient = getOkHttpClient(httpBuilder);
+        return getRetrofit(httpClient,builder);
     }
 
     private OkHttpClient getOkHttpClient(OkHttpClient.Builder builder){
@@ -105,7 +209,7 @@
                 //设置OKHttpClient
                 .client(client)
                 //设置baseUrl,注意,baseUrl必须后缀"/"
-                .baseUrl(BuildConfig.HOST_IP_ADDR+"api/v2/")
+                .baseUrl(BuildConfig.HOST_IP_ADDR+"api/v4/")
                 .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                 .build();
     }

--
Gitblit v1.9.1