package com.kuanzhai.user.network
|
|
import android.util.Log
|
import cn.sinata.xldutils.utils.SPUtils
|
import com.kuanzhai.user.utils.Const
|
import okhttp3.OkHttpClient
|
import okhttp3.logging.HttpLoggingInterceptor
|
import retrofit2.Retrofit
|
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
|
|
/**
|
* 网络请求retrofit初始化。
|
*/
|
class RRetrofit private constructor() {
|
|
private val retrofit: Retrofit = Retrofit.Builder()
|
.baseUrl(Apis.BASE_URL)
|
.addConverterFactory(JsonConverterFactory.create())
|
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
.client(OkHttpClient.Builder()
|
.addInterceptor(HttpLoggingInterceptor().apply {
|
level = HttpLoggingInterceptor.Level.BODY
|
})
|
.addInterceptor { chain ->
|
val token = SPUtils.instance().getString(Const.User.TOKEN)
|
val request =
|
if (token.isEmpty()) chain.request() else
|
chain.request().newBuilder().addHeader("Authorization", "Bearer $token").build()
|
Log.e(Const.Tag,request.headers().toString())
|
chain.proceed(request)
|
}
|
.build())
|
.build()
|
|
companion object {
|
fun instance() = RRetrofit()
|
}
|
|
fun <T> create(clazz: Class<T>): T = retrofit.create(clazz)
|
}
|