Выбор ответа Junior Сеть: Retrofit и OkHttp обновлено

HttpLoggingInterceptor в release

Вопрос

Почему HttpLoggingInterceptor с уровнем BODY нельзя оставлять в release-сборке?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пишет в логи заголовки и тела, включая токены и личные данные. Логи с токенами авторизации и персональными данными это утечка: их видно через adb logcat, они могут попасть в отчёты о падениях.

Варианты ответа

  1. Пишет в логи заголовки и тела, включая токены и личные данныеправильный ответ
  2. Он ломает HTTPS: чтение тела отключает проверку сертификата
  3. Google Play отклоняет сборки, в которых найден этот класс
  4. Он рассчитан на эмулятор и падает на реальных устройствах

Разбор

Логи с токенами авторизации и персональными данными это утечка: их видно через adb logcat, они могут попасть в отчёты о падениях. Кроме того, чтение тела для логирования замедляет запросы. Подключают его только в debug (if (BuildConfig.DEBUG)) или с redactHeader("Authorization"). HTTPS он не ломает, прямого запрета в правилах стора нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.