Middle+
Hogyan módosíthatók az összes kérés a Retrofit könyvtárban?
sobes.tech MI
Válasz az MI-től
Interceptor. Hozzáadva az OkHttpClient-hez, amelyet a Retrofit használ. Az interceptor módosíthatja a kérést küldés előtt és a választ feldolgozás előtt.
interface Interceptor {
fun intercept(chain: Interceptor.Chain): Response
}
Hozza létre saját Interceptor megvalósítását, és adja hozzá az OkHttpClient.Builder-hez:
class MyChangingInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val newRequest = originalRequest.newBuilder()
// Példa: fejléc hozzáadása
.addHeader("X-Custom-Header", "SomeValue")
// Példa: URL módosítása
// .url("https://new.api.com" + originalRequest.url.encodedPath)
// Példa: módszer módosítása (ha szükséges)
// .method("POST", originalRequest.body)
.build()
return chain.proceed(newRequest)
}
}
Adj hozzá interceptort az OkHttpClient-hez:
val client = OkHttpClient.Builder()
.addInterceptor(MyChangingInterceptor())
// Több interceptort is hozzáadhatsz
// .addInterceptor(AnotherInterceptor())
.build()
Használd az elkészített OkHttpClient-t a Retrofit példány létrehozásakor:
val retrofit = Retrofit.Builder()
.baseUrl("https://your.api.com/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()