package Ġcom . we im ore . net . interceptor Ċ Ċ import Ġcom . we im ore . util . L Ċ import Ġokhttp 3 . Http Url Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġok io . Buffer Ċ import Ġjava . nio . charset . Charset Ċ Ċ /** Ċ Ġ* Ġ@ author ĠWe im ore Ċ 2 0 1 8 / 1 2 / 6 . Ċ description : Ċ Ġ*/ Ċ class ĠMore BaseUrl Interceptor Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠUTF 8 Ġ= ĠCharset . forName (" UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ åİŁå§ĭ çļĦ original Request ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Request Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ èĢģ çļĦ url ĊĠĠĠĠĠĠĠ Ġval Ġold Url Ġ= Ġoriginal Request . url () ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġoriginal Request . body () ĊĠĠĠĠĠĠĠ Ġif Ġ( request Body Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body . writeTo ( buffer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcharset Ġ= ĠUTF 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġrequest Body . contentType () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contentType Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharset Ġ= ĠcontentType . charset ( UTF 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ ĠL . d (" è¯·æ±Ĥ \ n url ï¼ļ" Ġ+ Ġold Url Ġ+ Ġ"\ nb ody :" Ġ+ Ġbody ) ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ original Request çļĦ åĪĽå»º èĢħ builder ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġoriginal Request . newBuilder () ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å¤´ ä¿¡æģ¯ çļĦ éĽĨåĲĪ å¦Ĥ ï¼ļ manage , md ff x ĊĠĠĠĠĠĠĠ Ġval Ġurl name List Ġ= Ġoriginal Request . headers (" baseUrl ") ĊĠĠĠĠĠĠĠ Ġif Ġ( url name List Ġ!= Ġnull Ġ&& Ġurl name List . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪłéĻ¤ åİŁ æľī éħįç½® ä¸ŃçļĦ åĢ¼ , å°±æĺ¯ names And Values éĽĨåĲĪ éĩĮ çļĦåĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . remove Header (" baseUrl ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å¤´ ä¿¡æģ¯ ä¸Ń éħįç½® çļĦ value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠbaseUrl Ġ= Ġurl name List [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase URL Ġ= ĠHttp Url . parse ( baseUrl . replace (" baseUrl :", ĠbaseUrl )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĩį å»º æĸ°çļĦ Http Url ï¼Į éľĢè¦ģ éĩįæĸ° è®¾ç½® çļĦ url éĥ¨åĪĨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Http Url Ġ= Ġold Url . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scheme ( base URL !!. scheme ()) // http åįıè®® å¦Ĥ ï¼ļ http æĪĸèĢħ https ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. host ( base URL . host ()) // ä¸»æľº åľ°åĿĢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. port ( base URL . port ()) // ç«¯åı£ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å¤ĦçĲĨ åĲİçļĦ æĸ° new Request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Request Ġ= Ġbuilder . url ( new Http Url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL . d ( Ġ" new _ url : Ġ" Ġ+ Ġnew Request . url ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( new Request ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( original Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }