Ответ
Interceptor — это компонент, который позволяет перехватывать и обрабатывать HTTP-запросы и ответы перед их отправкой или после получения. Чаще всего используется в библиотеках типа OkHttp для логирования, добавления заголовков, обработки ошибок и т.д.
Пример с OkHttp:
val loggingInterceptor = HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BODY
}
val client = OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.addInterceptor { chain ->
val request = chain.request().newBuilder()
.addHeader("Authorization", "Bearer token")
.build()
chain.proceed(request)
}
.build()
Виды интерцепторов:
- Application Interceptors — работают на уровне приложения.
- Network Interceptors — работают на сетевом уровне (после кеширования).