Я использую Imgur API для извлечения данных, но этот API требует аутентификации. Я использовал модифицированную библиотеку, и у меня есть идентификатор клиента для API. Я очень новичок и понятия не имею, как добавить аутентификацию с помощью модернизации. Пожалуйста, помогите мне. Вот учебник, но они не используют модернизацию Учебник .
ApiClient.kt
package com.example.imgurapi.Network
import okhttp3.*
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.io.IOException
object ApiClient {
private var BASE_URL: String = "https://api.imgur.com/3/image/"
private var apiClient2: ApiClient? = null
private var retrofit: Retrofit? = null
init {
val clientBuilder = OkHttpClient.Builder()
//Create a new Interceptor.
//Create a new Interceptor.
val headerAuthorizationInterceptor: Interceptor = object : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response? {
var request: Request = chain.request()
val headers: Headers =
request.headers().newBuilder().add("Authorization", "01016a9fff88608").build()
request = request.newBuilder().headers(headers).build()
return chain.proceed(request)
}
}
clientBuilder.addInterceptor(headerAuthorizationInterceptor)
retrofit = Retrofit.Builder().baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).build()
}
fun getInstance(): ApiClient? {
if (apiClient2 == null) {
apiClient2 = ApiClient
}
return apiClient2
}
fun getApi(): ApiInterface? {
return retrofit?.create(ApiInterface::class.java)
}
ApiTerface.kt
package com.example.imgurapi.Network
import ImageData
import retrofit2.Call
import retrofit2.http.GET
import retrofit2.http.Path
interface ApiInterface {
@GET("image/{id}")
open fun imageById(@Path("id") id: String?): Call<ImageData?>?
}