Middle+
Πώς αλλάζετε όλα τα αιτήματα στη βιβλιοθήκη Retrofit;
sobes.tech AI
Απάντηση από AI
Interceptor. Προστίθεται στο OkHttpClient που χρησιμοποιείται από το Retrofit. Ο interceptor μπορεί να τροποποιήσει το αίτημα πριν από την αποστολή και την απάντηση πριν από την επεξεργασία.
interface Interceptor {
fun intercept(chain: Interceptor.Chain): Response
}
Δημιουργήστε την δική σας υλοποίηση του Interceptor και προσθέστε την στο OkHttpClient.Builder:
class MyChangingInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val newRequest = originalRequest.newBuilder()
// Παράδειγμα: προσθήκη επικεφαλίδας
.addHeader("X-Custom-Header", "SomeValue")
// Παράδειγμα: αλλαγή URL
// .url("https://new.api.com" + originalRequest.url.encodedPath)
// Παράδειγμα: αλλαγή μεθόδου (αν χρειάζεται)
// .method("POST", originalRequest.body)
.build()
return chain.proceed(newRequest)
}
}
Προσθέστε τον interceptor στο OkHttpClient:
val client = OkHttpClient.Builder()
.addInterceptor(MyChangingInterceptor())
// Μπορείτε να προσθέσετε πολλούς interceptors
// .addInterceptor(AnotherInterceptor())
.build()
Χρησιμοποιήστε το OkHttpClient που δημιουργήσατε κατά τη δημιουργία της στιγμιότυπης Retrofit:
val retrofit = Retrofit.Builder()
.baseUrl("https://your.api.com/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()