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