package Ġcom . m . library . http Ċ Ċ import Ġcom . m . library . utils . Log Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġok io . Buffer Ċ import Ġjava . nio . charset . Charset Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmaj ian Ċ Ġ* ĠDate Ġ: Ġ 2 0 1 8 / 1 / 1 4 Ċ Ġ* ĠDescribe Ġ: Ċ Ġ*/ Ċ @ Singleton Ċ class ĠRequest Interceptor Ġ@ Inject Ġconstructor () Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ?): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain !!. request () Ċ // ĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder (). add Header (" client - type ", Ġ" 2 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" auth - token ", ĠSP Utils . getInstance (). getString ( Save Constant . TOKEN )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġhas RequestBody Ġ= Ġrequest . body () Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ// æīĵåį° è¯·æ±Ĥ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġrequest . headers () ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġif Ġ( headers . size () Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i : ĠInt Ġin Ġ 0 .. ( headers . size () Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append ("${ headers . name ( i )} :${ headers . value ( i )} Ġ| Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ ĠLogger . d (" Header : Ġ${ str }") ĊĊĠĠĠĠĠĠĠ Ġvar Ġcharset : ĠCharset ? Ġ= ĠCharset . forName (" UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġvar Ġbody : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( has RequestBody ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġrequest . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body !!. writeTo ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġrequest Body . contentType () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contentType Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharset Ġ= ĠcontentType . charset ( Charset . forName (" UTF - 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharset ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġbuffer . readString ( charset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ("\ n \ n |---------------- ---- RequestBody ------------------------------------------------ -------- " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠRequest Ġ-> Ġ${ request . method ()} Ġurl Ġ-> Ġ${ request . url ()} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠHeader : Ġ${ str } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Ġparams : Ġ$ body " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Ġ---------------------------------------------------------------------------- |" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġresponse Body !!. source () ĊĠĠĠĠĠĠĠ Ġsource . request ( java . lang . Long . MAX _ VALUE ) Ġ// ĠBuffer Ġthe Ġentire Ġbody . ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġsource . buffer () ĊĠĠĠĠĠĠĠ Ġval ĠUTF 8 Ġ= ĠCharset . forName (" UTF - 8 ") ĊĠĠĠĠĠĠĠ ĠLog . d ("\ n \ n |---------------- ---- Response ------------------------------------------------ -------- " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠHttp Ġ-> Ġ: Ġ${ request . method ()} Ġurl Ġ-> Ġ${ request . url ()} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ĠHeader : Ġ${ str } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Ġparams : Ġ$ body Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Ġdata : Ġ${ buffer . clone (). readString ( UTF 8 )}" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Ġ---------------------------------------------------------------------------- |" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĊĠĠĠ Ġ} Ċ }