OkHttp3 Тело журнала HttpLoggingInterceptor без заголовка журнала - PullRequest
0 голосов
/ 07 июля 2019

Я создаю приложение для Android, которое использует Retrofit для работы в сети. Вот код:

private val loggingInterceptor by lazy {

    HttpLoggingInterceptor(HttpLoggingInterceptor.Logger { message -> Log.d(TAG, message) }).apply {
        level = if(BuildConfig.DEBUG) HttpLoggingInterceptor.Level.BODY else HttpLoggingInterceptor.Level.NONE
    }
}

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

Retrofit.Builder()
   .baseUrl(" https://mybaseurl.com/")
   .addConverterFactory(GsonConverterFactory.create())
   .client(client)
   .build()

Я использую HttpLoggingInterceptor, однако журналы слишком многословны, поскольку в нем регистрируются все заголовки ..

content-language: en-GB
content-type: application/json
date: Sun, 07 Jul 2019 12:52:36 GMT
p3p: CP="NON CUR OTPi OUR NOR UNI"
transfer-encoding: chunked
cache-control: no-cache,no-store,must-reva
x-powered-by: Servlet/3.0
expires: Thu, 01 Dec 1994 16:00:00 GMT
pragma: no-cache
and more....

Если я переключусь на LogLevel Basic, я не получу запрос и ответ, а только URL-адреса. Кстати, заглянув внутрь HttpLoggingInterceptor код:

boolean logHeaders = logBody || level == Level.HEADERS;

Так что, похоже, что нет реального способа зарегистрировать тело без заголовков.

Есть какой-нибудь хакерский способ или обходной путь?

...