From ecaf8069072e71db4bff94671e72764b211d6af1 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期四, 26 十月 2023 00:43:51 +0800
Subject: [PATCH] 功能完善

---
 app_base/src/main/java/com/android/app_base/http/RetrofitManager.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java b/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
index d997198..5af996b 100644
--- a/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
+++ b/app_base/src/main/java/com/android/app_base/http/RetrofitManager.java
@@ -2,9 +2,17 @@
 
 import androidx.collection.CircularArray;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.TypeAdapter;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonToken;
+import com.google.gson.stream.JsonWriter;
+
 import java.util.HashMap;
 import java.util.Map;
 
+import okhttp3.Interceptor;
 import okhttp3.OkHttpClient;
 import retrofit2.Retrofit;
 import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
@@ -17,13 +25,17 @@
  */
 public class RetrofitManager {
 
-    private static RetrofitManager instance;
+    private static volatile RetrofitManager instance;
     private final Map<String,Retrofit> retrofitMap;
     private OkHttpClient mClient;
 
     public static RetrofitManager getInstance(){
-        if (instance == null){
-            instance = new RetrofitManager();
+        if (instance == null) {
+            synchronized (RetrofitManager.class) {
+                if (instance == null) {
+                    instance = new RetrofitManager();
+                }
+            }
         }
         return instance;
     }
@@ -37,11 +49,16 @@
      * 鑾峰彇Retrofit瀵硅薄
      */
     public Retrofit getRetrofit(String baseUrl) {
+        Gson gson = new GsonBuilder()
+                //閰嶇疆浣犵殑Gson
+                .setDateFormat("yyyy-MM-dd hh:mm:ss")
+                .registerTypeHierarchyAdapter(String.class,STRING)//璁剧疆瑙f瀽鐨勬椂鍊檔ull杞垚""
+                .create();
         Retrofit retrofit = retrofitMap.get(baseUrl);
         if (retrofit == null) {
             retrofit = new Retrofit.Builder()
                     .client(mClient)
-                    .addConverterFactory(GsonConverterFactory.create())
+                    .addConverterFactory(GsonConverterFactory.create(gson))
                     .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                     .baseUrl(baseUrl)
                     .build();
@@ -49,12 +66,42 @@
         }
         return retrofit;
     }
+    /**
+     * 鑷畾涔塗ypeAdapter ,null瀵硅薄灏嗚瑙f瀽鎴愮┖瀛楃涓�
+     */
+    public static final TypeAdapter<String> STRING = new TypeAdapter<String>() {
+        public String read(JsonReader reader) {
+            try {
+                if (reader.peek() == JsonToken.NULL) {
+                    reader.nextNull();
+                    return ""; // 鍘熷厛鏄繑鍥瀗ull锛岃繖閲屾敼涓鸿繑鍥炵┖瀛楃涓�
+                }
+                return reader.nextString();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            return "";
+        }
+        public void write(JsonWriter writer, String value) {
+            try {
+                if (value == null) {
+                    writer.nullValue();
+                    return;
+                }
+                writer.value(value);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    };
 
     /**
-     * 璁剧疆 OkHttpClient
+     * 璁剧疆 鑷畾涔塐kHttpClient
      */
     public RetrofitManager setOkHttpClient(OkHttpClient client) {
         this.mClient = client;
         return instance;
     }
+
+
 }

--
Gitblit v1.9.1