Выступал тут на DevFest, у меня оттуда остался один полезный слайд про OkHttp-клиент
Коротко:
OkHttp-клиент — самый популярный сетевой клиент на Android, поверх которого часто используют Retrofit
Главное — он умеет много всего из коробки
🔵записывать/читать кэш, управлять им с помощью хэдера cache-control
🔵управлять cookie и разруливать их атрибуты
🔵устанавливать соединение по http1 и http2 (а по http3 нет, завидуем iOS-разработчикам)
🔵выбирать сеть, по которой будет выполнен запрос
🔵работать с DNS и направлять трафик через Proxy
🔵выполнять сам запрос, то есть как раз передавать байты по интернету. при этом "движок", выполняющий запрос, можно подменить
А возможно это все благодаря Interceptor-ам — цепочке колбеков, позволяющих прочитать/изменить запрос и ответ
Вы можете написать кастомные Interceptor-ы и добавить их в список appInterceptor-ов или networkInterceptor-ов
Или можете залезть в исходники OkHttp и посмотреть на его стандартные Interceptor-ы, в которых как раз и реализована вся вышеперечисленная магия
На картинке:
🔵отличия между appInterceptor-ами или networkInterceptor-ами
🔵стандартные OkHttp Interceptor-ы и их роль
full hd картинка в комментариях
@dolgo_polo_dev
