package Ġs ny k . net Ċ Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġokhttp 3 . internal . close Quiet ly Ċ import Ġok io . Buffer Ċ Ċ class ĠHttp Logging Interceptor ( private Ġval Ġlog : ĠLogger ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġrequest . body ĊĠĠĠĠĠĠĠ Ġrequest Body ?. writeTo ( buffer ) ĊĠĠĠĠĠĠĠ Ġlog . warn (" --> Ġ${ request . method } Ġ${ request . url }, Ġpayload =${ buffer . read Utf 8 () }") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body ĊĠĠĠĠĠĠĠ Ġval Ġresponse Str Ġ= Ġresponse Body ?. string () ĊĠĠĠĠĠĠĠ Ġvar Ġresponse Body Str Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( response Str Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Str . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body Str Ġ= Ġresponse Str . take ( 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . warn ("< -- ĠHTTP ĠResponse : Ġcode =${ response . code }, Ġmessage =${ response . message }, Ġbody =${ response Body Str }") ĊĠĠĠĠĠĠĠ Ġresponse Body ?. close Quiet ly () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} Ċ } Ċ