diff --git a/foudations/mogo-commons/build.gradle b/foudations/mogo-commons/build.gradle index 98a4c57..1303b12 100644 --- a/foudations/mogo-commons/build.gradle +++ b/foudations/mogo-commons/build.gradle @@ -33,5 +33,7 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation rootProject.ext.dependencies.retrofit - + implementation rootProject.ext.dependencies.retrofitadapter + implementation rootProject.ext.dependencies.retrofitconvertergson + implementation rootProject.ext.dependencies.retrofitconverterscalars } \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/Sample.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/Sample.kt new file mode 100644 index 0000000..994a511 --- /dev/null +++ b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/Sample.kt @@ -0,0 +1,5 @@ +package com.mogo.cloud.commons + +class Sample { + +} \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt new file mode 100644 index 0000000..55fb75c --- /dev/null +++ b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt @@ -0,0 +1,22 @@ +package com.mogo.cloud.commons.network + +import okhttp3.OkHttpClient + + +/** + * + * @Author: wujifei + * @CreateDate: 1/20/21 12:16 AM + * @Description: 描述 + */ +class OkHttpFactory private constructor() { + + companion object { + val okHttpClient: OkHttpClient by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val builder = OkHttpClient.Builder() + builder.build() + } + + + } +} \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/RetrofitFactory.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/RetrofitFactory.kt index 6db0e8b..5d8cbd3 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/RetrofitFactory.kt +++ b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/RetrofitFactory.kt @@ -1,7 +1,10 @@ package com.mogo.cloud.commons.network import androidx.collection.ArrayMap +import okhttp3.OkHttpClient import retrofit2.Retrofit +import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory +import retrofit2.converter.gson.GsonConverterFactory /** * @@ -11,4 +14,39 @@ import retrofit2.Retrofit */ class RetrofitFactory private constructor() { + companion object { + private val sRpcServiceMap: MutableMap = ArrayMap() + private val sRpcNoAdapterServiceMap: MutableMap = ArrayMap() + + @Synchronized + fun getInstance(baseUrl: String): Retrofit? { + var target = sRpcServiceMap[baseUrl] + if (target == null) { + target = Retrofit.Builder() + .client(OkHttpFactory.okHttpClient) + .baseUrl(baseUrl) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .addConverterFactory(GsonConverterFactory.create()) + .build() + sRpcServiceMap[baseUrl] = target + } + return target + } + + @Synchronized + fun getInstanceNoCallAdapter(baseUrl: String): Retrofit? { + var target = sRpcNoAdapterServiceMap[baseUrl] + if (target == null) { + target = Retrofit.Builder() + .client(OkHttpFactory.okHttpClient) + .baseUrl(baseUrl) + .addConverterFactory(GsonConverterFactory.create()) + .build() + sRpcNoAdapterServiceMap[baseUrl] = target + } + return target + } + } + + } \ No newline at end of file