package Ġcom . a 8 ti yu . ca iz han _ kotlin . util Ċ Ċ import Ġorg . apache . commons . lang 3 . StringUtils Ċ import Ġorg . apache . http . NameValuePair Ċ import Ġorg . apache . http . client . config . Request Config Ċ import Ġorg . apache . http . client . entity . Url Encoded Form Entity Ċ import Ġorg . apache . http . client . methods . HttpGet Ċ import Ġorg . apache . http . client . methods . HttpPost Ċ import Ġorg . apache . http . client . methods . Http Uri Request Ċ import Ġorg . apache . http . client . utils . URI Builder Ċ import Ġorg . apache . http . entity . String Entity Ċ import Ġorg . apache . http . impl . client . Closeable HttpClient Ċ import Ġorg . apache . http . impl . client . HttpClient s Ċ import Ġorg . apache . http . message . Basic NameValuePair Ċ import Ġorg . apache . http . util . Entity Utils Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ object ĠHttp Utils Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġhttp client : ĠClose able HttpClient ? Ġ= Ġnull ĊĠĠĠ Ġval ĠIP H ONE 5 _ USER _ AGENT Ġ= Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 7 _ 0 Ġlike ĠMac ĠOS ĠX ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġen - us ) ĠAppleWebKit / 5 3 7 . 5 1 . 1 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 7 . 0 ĠMobile / 1 1 A 4 6 5 ĠSafari / 9 5 3 7 . 5 3 " ĊĠĠĠ Ġval ĠEN COND ING Ġ= Ġ" utf - 8 " ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Config Ġ= ĠRequest Config . custom () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setConnection Request Timeout ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Socket Timeout ( 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Connect Timeout ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġhttp client Ġ= ĠHttpClient s . custom () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Conn Per Route ( 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Conn Total ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setDefault Request Config ( request Config ). build () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet æĸ¹æ³ķ è¯·æ±Ĥ æķ°æį® ĊĠĠĠĠ Ġ* Ġ@ return ĠPair < çĬ¶æĢģ çłģ , Ġ åĵįåºĶ åĨħå®¹ > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget ( url : ĠString , Ġparams : ĠMap < String , ĠString > ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders : ĠMutable Map < String , ĠString >? Ġ= Ġnull ): ĠPair < Int , ĠString > Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isEmpty ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" url Ġrequired !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnv ps Ġ= ĠArrayList < NameValuePair >() ĊĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull Ġ&& Ġ! params . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġparams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnv ps . add ( Basic NameValuePair ( key , Ġvalue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠURI Builder ( url ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! nv ps . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Parameters ( nv ps ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġhttp Post . add Header (" Content - type ", Ġ" text / json ; Ġcharset =" Ġ+ Ġencoding ); ĊĠĠĠĠĠĠĠ Ġval Ġhttp Get Ġ= ĠHttp Get ( builder . build ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( headers Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġheaders ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Get . setHeader ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġdo Execute ( http Get ) ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġpost ( url : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠMap < String , ĠString > ?, Ġencoding : ĠString ?): ĠPair < Int , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhttp Post Ġ= ĠHttp Post ( url ) ĊĠĠĠĠĠĠĠ Ġval Ġnv ps Ġ= ĠArrayList < NameValuePair >() ĊĠĠĠĠĠĠĠ Ġval Ġencode Ġ= Ġif Ġ( encoding Ġ== Ġ"" Ġ|| Ġencoding Ġ== Ġnull ) ĠEN COND ING Ġelse Ġencoding ĊĊĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull Ġ&& Ġ! params . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġparams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnv ps . add ( Basic NameValuePair ( key , Ġvalue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhttp Post . entity Ġ= ĠUrl Encoded Form Entity ( nv ps , Ġencode ) ĊĠĠĠĠĠĠĠ Ġ// Ġhttp Post . add Header (" Content - type ", Ġ" text / json ; Ġcharset =" Ġ+ Ġencoding ); ĊĠĠĠĠĠĠĠ Ġreturn Ġdo Execute ( http Post ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Execute ( http Ent it : ĠHttp Uri Request ): ĠPair < Int , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp client !!. execute ( http Ent it ). use Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstatusCode Ġ= Ġresponse . status Line . statusCode ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġresponse . entity ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġba os Ġ= ĠByteArrayOutputStream () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity . writeTo ( ba os ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= ĠString ( ba os . toByteArray ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠEntity Utils . consume ( entity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( statusCode , Ġresponse Body ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ