/** Ċ Ġ* ĠAuthor ĠHer b Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠAll ĠRights ĠReserved Ċ Ġ*/ Ċ package Ġcom . her b 2 sy . net . request Ċ Ċ import Ġokhttp 3 .* Ċ import Ġjava . io . IOException Ċ import Ġjava . io . Unsupported EncodingException Ċ import Ġjava . net . URL Encoder Ċ Ċ /** Ċ Ġ* Ġ@ author : ĠHer b L ee Ċ Ġ* Ġ@ Date : ĠCreated Ġon Ġ 2 0 1 9 / 5 / 6 Ġ 1 0 : 5 8 ĠPM Ċ Ġ* Ġ@ des : Ċ Ġ*/ Ċ class ĠK okhttp Ġ{ ĊĊĠĠĠ Ġvar Ġclient : Ok HttpClient ĊĠĠĠ Ġval ĠUTF _ 8 Ġ= Ġ" UTF - 8 " ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠ Ġclient Ġ= Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġval Ġinstant : K okhttp Ġby Ġlazy Ġ{ ĠK okhttp () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap To QueryString ( map : ĠMap < String , ĠString >): ĠString { ĊĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġmap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring . append ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring . append (" =") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring . append ( URL Encoder . encode ( value , ĠUTF _ 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring . append ("& ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġstring . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Data ( bean : H Request , on Success :( response : ĠResponse )-> Unit , onError :( str : String ? )-> Unit ){ ĊĊĠĠĠĠĠĠĠ Ġwhen ( bean . method ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¼Ģå§ĭ åĪĿå§ĭåĮĸ åĲĦç§į ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Config . Method . GET Ġ-> get ( bean , on Success , onError ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Config . Method . POST Ġ-> Ġpost ( bean , on Success , onError ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( bean : ĠH Request , on Success :( response : ĠResponse )-> Unit , onError :( str : String ? )-> Unit ){ ĊĊĠĠĠĠĠĠĠ Ġvar Ġparam : String Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( bean ._ params . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam Ġ= Ġmap To QueryString ( bean ._ params ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( bean . params Map Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bean . params Map ?. isNotEmpty () !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam Ġ+= Ġmap To QueryString ( bean . params Map !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRequest . Builder () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( ss Ġin Ġbean ._ headers . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header ( ss , ĠURL Encoder . encode ( bean ._ headers [ ss ], ĠUTF _ 8 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( bean . header Map Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ss Ġin Ġbean . header Map ?. keys !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header ( ss , ĠURL Encoder . encode ( bean ._ headers [ ss ], ĠUTF _ 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġbean . url ĊĠĠĠĠĠĠĠ Ġif Ġ( param Ġ!= Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"$ url ?$ param " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġbuilder . url ( url ). build () ĊĠĠĠĠĠĠĠ Ġget ( request , on Success , onError ) ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget ( request : ĠRequest , on Success :( response : ĠResponse )-> Unit , onError :( str : String ? )-> Unit ){ ĊĠĠĠĠĠĠĠ Ġclient . new Call ( request ). enqueue ( object Ġ: ĠCallback { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall , Ġe : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( e . message ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall , Ġresponse : ĠResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġprivate Ġfun Ġpost ( bean : ĠH Request , on Success :( response : ĠResponse )-> Unit , onError :( str : String ? )-> Unit ){ ĊĠĠĠĠĠĠĠ Ġ// æļĤ æĹ¶ åĪĨ ä¸º json ĠåĴĮ Ġ è¡¨åįķ ĊĠĠĠĠĠĠĠ Ġwhen ( bean . type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Config . Type . DEF Ġ-> Ġpost By From ( bean ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Config . Type . JSON Ġ-> Ġpost By Json ( bean ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpost By From ( bean : ĠH Request ){ ĊĊĊĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġpost By Json ( bean : ĠH Request ){ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġshow Detail (){ ĊĊĠĠĠĠĠĠĠ ĠSystem . out . println (" æĺ¾ç¤º è¯¦æĥħ ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġshow Main (){ ĊĠĠĠĠĠĠĠ ĠSystem . out . println (" æĺ¾ç¤º ä¸»è¦ģ çļĦ ") ĊĠĠĠ Ġ} Ċ Ċ }