Middle+
Retrofit kütüphanesindeki tüm istekleri nasıl değiştirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Interceptor. Retrofit tarafından kullanılan OkHttpClient'e eklenir. Interceptor, isteği göndermeden önce ve yanıtı işlemden önce değiştirebilir.
interface Interceptor {
fun intercept(chain: Interceptor.Chain): Response
}
Kendi Interceptor uygulamanızı oluşturun ve OkHttpClient.Builder'a ekleyin:
class MyChangingInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val newRequest = originalRequest.newBuilder()
// Örnek: başlık ekle
.addHeader("X-Custom-Header", "SomeValue")
// Örnek: URL değiştir
// .url("https://new.api.com" + originalRequest.url.encodedPath)
// Örnek: metod değiştir (gerekirse)
// .method("POST", originalRequest.body)
.build()
return chain.proceed(newRequest)
}
}
Interceptor'ü OkHttpClient'a ekleyin:
val client = OkHttpClient.Builder()
.addInterceptor(MyChangingInterceptor())
// Birden fazla interceptor ekleyebilirsiniz
// .addInterceptor(AnotherInterceptor())
.build()
Oluşturulan OkHttpClient'ı kullanarak Retrofit örneği oluşturun:
val retrofit = Retrofit.Builder()
.baseUrl("https://your.api.com/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()