В приведенном выше вопросе код в Companion Object {} написан в классе Interface, где присутствуют мои конечные точки.
И создал этот класс, аналогичный приведенному выше коду, но как отдельный класс .
class ApiClient private constructor() {
companion object {
private val retrofit: Retrofit? = null
private var context: Context? = null
private val httpClient: OkHttpClient.Builder = OkHttpClient.Builder()
//.addInterceptor(LoggingInterceptor())
private val builder: Retrofit.Builder = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
fun createService(ctx: Context): ApiInterface {
context = ctx
val retrofit: Retrofit = builder.client(httpClient.build()).build()
return retrofit.create(ApiInterface::class.java)
}
fun createServiceWithAuth(ctx: Context, authToken: String?): ApiInterface {
context = ctx
if (authToken != null) {
httpClient.addInterceptor(object : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
val original: Request = chain.request()
val request: Request = original.newBuilder() //.header("User-Agent", "Your-App-Name")
.header("Authorization", "bearer $authToken")
.header("Accept-Encoding", "None")
.method(original.method, original.body)
.build()return chain.proceed(request)
}
})
}
val retrofit: Retrofit = builder.client(httpClient.build()).build()
return retrofit.create(ApiInterface::class.java)
}
}
}
Я до сих пор не понимаю, в чем проблема в этих двух кодах {Вопрос задан, и этот ответ}. Но этот ответ не дает мне такой проблемы.
Если кто-нибудь сможет мне объяснить, это будет полезно и мне, и другим.
Спасибо