增加RetrofitFactory
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.mogo.cloud.commons
|
||||
|
||||
class Sample {
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<String, Retrofit?> = ArrayMap()
|
||||
private val sRpcNoAdapterServiceMap: MutableMap<String, Retrofit?> = 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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user