abstract class BaseRetrofitClient {
companion object {
private const val TIME_OUT = 5
}
private val client: OkHttpClient
get() {
val cookieJar =
PersistentCookieJar(SetCookieCache(), SharedPrefsCookiePersistor(MyApp.CONTEXT))
val builder = OkHttpClient.Builder()
val logging = HttpLoggingInterceptor()
if (BuildConfig.DEBUG) {
logging.level = HttpLoggingInterceptor.Level.BODY
} else {
logging.level = HttpLoggingInterceptor.Level.BASIC
}
logging.level = HttpLoggingInterceptor.Level.BODY
builder.addInterceptor(logging)
.connectTimeout(TIME_OUT.toLong(), TimeUnit.SECONDS)
handleBuilder(builder)
return builder.cookieJar(cookieJar).build()
}
protected abstract fun handleBuilder(builder: OkHttpClient.Builder)
fun <S> getService(serviceClass: Class<S>, baseUrl: String): S {
return Retrofit.Builder()
.client(client)
.addConverterFactory(GsonConverterFactory.create())
// .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
// .addCallAdapterFactory(CoroutineCallAdapterFactory.invoke())
.baseUrl(baseUrl)
.build().create(serviceClass)
}
BaseRetrofitClient
最新推荐文章于 2024-04-16 09:57:41 发布