Sobes.tech
Назад к вопросам
Junior — Middle
96

Каким образом реализовать ведение логов при использовании Retrofit и OkHttp для сетевых запросов?

Компании, где спрашивали
СовкомбанкСовкомбанк

Ответ от нейросети

sobes.tech AI

Для ведения логов сетевых запросов при использовании Retrofit и OkHttp обычно применяют HttpLoggingInterceptor из библиотеки OkHttp. Этот интерсептор позволяет логировать детали запросов и ответов, включая заголовки, тело и статус.

Пример настройки:

val loggingInterceptor = HttpLoggingInterceptor().apply {
    level = HttpLoggingInterceptor.Level.BODY // Логируем тело запросов и ответов
}

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor(loggingInterceptor)
    .build()

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .client(okHttpClient)
    .addConverterFactory(GsonConverterFactory.create())
    .build()

Уровни логирования:

  • NONE — без логов
  • BASIC — логируются только основные данные (метод, URL, код ответа)
  • HEADERS — логируются заголовки
  • BODY — логируется всё, включая тело запроса и ответа

Такой подход помогает отлаживать сетевые взаимодействия и быстро находить ошибки.