咸光金 пре 4 година
родитељ
комит
805e90d6b0

+ 1 - 1
app/src/main/java/com/quansu/heifengwuliu/config/Config.kt

@@ -3,7 +3,7 @@ package com.quansu.heifengwuliu.config
 import com.ysnows.base.config.IConfig
 
 class Config : IConfig {
-    override fun baseUrl(): String? {
+    override fun baseUrl(): String {
         return "https://heifengwuliudev.qs110.com/"
     }
 

+ 2 - 3
app/src/main/java/com/quansu/heifengwuliu/utils/net/NetEngine.kt

@@ -1,12 +1,11 @@
 package com.quansu.heifengwuliu.utils.net
 
 import com.ysnows.base.base.BApp.Companion.instance
-import com.ysnows.base.net.NetEngine
+import com.ysnows.base.net.BNetEngine
 
 /**
  * Created by xianguangjin on 15/12/14.
  */
 object NetEngine {
-    val service: ApiService = NetEngine.initRetrofit(instance()!!.config()!!.baseUrl()).create(ApiService::class.java)
-    val BBDCService: BBDCApiService = NetEngine.initRetrofit(instance()!!.config()!!.BBDCUrl()).create(BBDCApiService::class.java)
+    val service: ApiService = BNetEngine.retrofit(instance()!!.config()!!.baseUrl()).create(ApiService::class.java)
 }

+ 1 - 1
base/src/main/java/com/ysnows/base/config/ApiConfig.kt

@@ -1,7 +1,7 @@
 package com.ysnows.base.config
 
 interface ApiConfig {
-    fun baseUrl(): String?
+    fun baseUrl(): String
     fun BBDCUrl(): String?
     fun searchUrl(): String?
     fun imageUrl(): String?

+ 24 - 52
base/src/main/java/com/ysnows/base/net/BNetEngine.kt

@@ -1,65 +1,37 @@
-package com.ysnows.base.net;
+package com.ysnows.base.net
 
-
-
-import com.readystatesoftware.chuck.ChuckInterceptor;
-import com.ysnows.base.base.BApp;
-
-import java.util.WeakHashMap;
-import java.util.concurrent.TimeUnit;
-
-import okhttp3.OkHttpClient;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-import retrofit2.converter.gson.GsonConverterFactory;
+import com.ysnows.base.net.BOkhttpClient.client
+import retrofit2.Retrofit
+import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
+import retrofit2.converter.gson.GsonConverterFactory
+import java.util.*
 
 /**
  * Created by xianguangjin on 15/12/14.
  */
+object BNetEngine {
 
-public class NetEngine {
-
-    private static OkHttpClient client = null;
-    private static WeakHashMap<String, Retrofit> map = new WeakHashMap<>();
-
+    private val map = WeakHashMap<String, Retrofit>()
 
-    public static Retrofit initRetrofit(String url) {
-        OkHttpClient item = initClient();
-
-        if (map.containsKey(url)) {
-            return map.get(url);
+    fun retrofit(url: String): Retrofit {
+        return if (map.containsKey(url)) {
+            map[url] ?: initRetrofit(url)
         } else {
-            Retrofit retrofit = new Retrofit.Builder()
-                    .baseUrl(url)
-                    .client(item)
-//                    .addConverterFactory(FastJsonConverterFactory.create())
-//                    .addConverterFactory(ScalarsConverterFactory.create())
-                    .addConverterFactory(GsonConverterFactory.create())
-                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
-                    .build();
-            map.put(url, retrofit);
-            return retrofit;
+            initRetrofit(url)
         }
     }
 
-    public static OkHttpClient initClient() {
-        if (client == null) {
-            OkHttpClient.Builder builder = new OkHttpClient.Builder()
-                    .readTimeout(15676, TimeUnit.MILLISECONDS)
-                    .writeTimeout(156760, TimeUnit.MILLISECONDS)
-                    .connectTimeout(15676, TimeUnit.MILLISECONDS)
-                    .retryOnConnectionFailure(true)
-//                    .addInterceptor(new ChuckerInterceptor(BApp.instance().getApplicationContext()))
-
-                    .addInterceptor(new ChuckInterceptor( BApp.instance().getApplicationContext()))
-
-                    // .addInterceptor(new ChuckInterceptor( BApp.instance()))
-                    .cookieJar(new BCookieJar())
-                    .addInterceptor(new BHeaderInterceptor());
+    private fun initRetrofit(url: String): Retrofit {
+        val retrofit = Retrofit.Builder()
+                .baseUrl(url)
+                .client(client()) //                    .addConverterFactory(FastJsonConverterFactory.create())
+                //                    .addConverterFactory(ScalarsConverterFactory.create())
+                .addConverterFactory(GsonConverterFactory.create())
+                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+                .build()
+        map[url] = retrofit
+        return retrofit
+    }
 
-            return client = builder.build();
-        }
 
-        return client;
-    }
-}
+}

+ 27 - 0
base/src/main/java/com/ysnows/base/net/BOkhttpClient.kt

@@ -0,0 +1,27 @@
+package com.ysnows.base.net
+
+import okhttp3.OkHttpClient
+import java.util.concurrent.TimeUnit
+
+object BOkhttpClient {
+
+    private var CLIENT: OkHttpClient? = null
+
+    fun client(): OkHttpClient {
+        return CLIENT ?: synchronized(this) {
+            val builder = OkHttpClient.Builder()
+                    .readTimeout(15676, TimeUnit.MILLISECONDS)
+                    .writeTimeout(156760, TimeUnit.MILLISECONDS)
+                    .connectTimeout(15676, TimeUnit.MILLISECONDS)
+                    .retryOnConnectionFailure(true)
+                    .cookieJar(BCookieJar())
+                    .addInterceptor(BHeaderInterceptor())
+
+            val okHttpClient = builder.build()
+            CLIENT = okHttpClient
+            okHttpClient
+        }
+
+
+    }
+}