Middle+
Comment modifier toutes les requêtes dans la bibliothèque Retrofit?
sobes.tech IA
Réponse de l'IA
Intercepteur. Ajouté au OkHttpClient utilisé par Retrofit. L'intercepteur peut modifier la requête avant l'envoi et la réponse avant le traitement.
interface Interceptor {
fun intercept(chain: Interceptor.Chain): Response
}
Créez votre propre implémentation de Interceptor et ajoutez-la à OkHttpClient.Builder:
class MyChangingInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val newRequest = originalRequest.newBuilder()
// Exemple : ajouter un en-tête
.addHeader("X-Custom-Header", "SomeValue")
// Exemple : changer l'URL
// .url("https://new.api.com" + originalRequest.url.encodedPath)
// Exemple : changer la méthode (si nécessaire)
// .method("POST", originalRequest.body)
.build()
return chain.proceed(newRequest)
}
}
Ajouter l'intercepteur à OkHttpClient:
val client = OkHttpClient.Builder()
.addInterceptor(MyChangingInterceptor())
// Vous pouvez ajouter plusieurs intercepteurs
// .addInterceptor(AnotherInterceptor())
.build()
Utiliser le OkHttpClient créé lors de la création de l'instance Retrofit:
val retrofit = Retrofit.Builder()
.baseUrl("https://your.api.com/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()