增加RetrofitFactory
This commit is contained in:
@@ -33,5 +33,7 @@ dependencies {
|
|||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||||
implementation rootProject.ext.dependencies.retrofit
|
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
|
package com.mogo.cloud.commons.network
|
||||||
|
|
||||||
import androidx.collection.ArrayMap
|
import androidx.collection.ArrayMap
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
|
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
|
||||||
|
import retrofit2.converter.gson.GsonConverterFactory
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -11,4 +14,39 @@ import retrofit2.Retrofit
|
|||||||
*/
|
*/
|
||||||
class RetrofitFactory private constructor() {
|
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