package Ġcom . example . cr azy gz . chat . factories . okhttp Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . service . carrier . Carrier Messaging Service Ċ import Ġandroid . util . Log Ċ import Ġcom . alibaba . fastjson . JSON Ċ import Ġcom . example . cr azy gz . chat . common . util . Log Util Ċ import Ġcom . example . cr azy gz . chat . factories . okhttp . request . Common Request Ċ import Ġokhttp 3 .* Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . reflect . Type Ċ import Ġjava . util .* ĊĊ Ċ public Ġinterface ĠResult Callback Ġ{ ĊĊĠĠĠ Ġfun ĠonSuccess ( json : ĠString ); ĊĊĠĠĠ Ġfun ĠonError ( e : ĠOk Http Error ) Ċ } Ċ Ċ public Ġdata Ġclass ĠOk Http Error ( var Ġcode : ĠInt , var Ġmsg : ĠString ) Ċ Ċ public Ġobject ĠClient Manager Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Client Manager "; ĊĊĊĠĠĠ Ġ// Ġ æľįåĬ¡åĻ¨ å®ļä¹ī API æİ¥åı£ åıĤæķ° ĊĠĠĠ Ġprivate Ġconst Ġval ĠNET _ CODE Ġ= Ġ" code " ĊĠĠĠ Ġprivate Ġconst Ġval ĠNET _ MSG Ġ= Ġ" msg "; ĊĠĠĠ Ġprivate Ġconst Ġval ĠNET _ DATA Ġ= Ġ" data "; ĊĊĠĠĠ Ġ// Ġ åĵįåºĶ çłģ ĊĠĠĠ Ġprivate Ġconst Ġval ĠJSON _ OK Ġ= Ġ 0 Ġ// Ġjson æŃ£ç¡® è§£æŀĲ ĊĠĠĠ Ġpublic Ġconst Ġval ĠEXCEPTION Ġ= Ġ 1 ĊĠĠĠ Ġpublic Ġconst Ġval ĠERROR Ġ= Ġ 2 ĊĊĠĠĠ Ġprivate Ġval ĠTYPE _ JSON : ĠMediaType ? Ġ= ĠMediaType . parse (" application / json ; Ġcharset = utf - 8 ") ĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠOk HttpClient () ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĊĠĠĠ Ġpublic Ġfun Ġget ( url : ĠString , map : ĠMap < String , ĠString >, Ġcallback : Result Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( getUrl ( url , Ġmap )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġhandle Response ( request , Ġcallback ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ å¤ĦçĲĨ åĵįåºĶ ĊĠĠĠ Ġprivate Ġfun Ġhandle Response ( request : ĠRequest ?, Ġcallback : ĠResult Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall ?, Ġe : ĠIOException ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Ġ{ callback . onError ( Ok Http Error ( EXCEPTION , Ġ" ç½ĳç»ľ å¼Ĥå¸¸ ")) } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall ?, Ġresponse : ĠResponse ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbody Ġ= Ġresponse !!. body () !!. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠjsonObject Ġ= ĠJSONObject ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jsonObject . has ( NET _ CODE )) Ġ{ Ġ// Ġæľī åĵįåºĶ çłģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jsonObject . getInt ( NET _ CODE ) Ġ== ĠJSON _ OK ) Ġ{ Ġ// Ġ å¤ĦçĲĨ æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Success ( jsonObject . getString ( NET _ DATA )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġ éĶĻè¯¯ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . onError ( Ok Http Error ( ERROR , ĠjsonObject . getString ( NET _ MSG ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġpost ( url : ĠString , Ġobjects : ĠAny , Ġcallback : ĠResult Callback ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" è§£æŀĲ ä¸º ï¼ļ \ n " Ġ+ ĠJSON . toJSON String ( objects )) ĊĠĠĠĠĠĠĠ Ġvar Ġbody : ĠRequest Body Ġ= ĠRequest Body . create ( TYPE _ JSON , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSON . toJSON String ( objects !! )) ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= ĠRequest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġhandle Response ( request , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetUrl ( url : ĠString , Ġvar arg Ġmap : Map < String , ĠString >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsb Ġ= ĠStringBuilder ( url ) ĊĠĠĠĠĠĠĠ Ġif Ġ( map . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( m Ġin Ġmap [ 0 ]. entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("${ m . key } =${ m . value }& ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog Util . d ( TAG , Ġsb . substring ( 0 , Ġsb . length Ġ- Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġreturn Ġsb . substring ( 0 , Ġsb . length Ġ- Ġ 1 ) ĊĠĠĠ Ġ} Ċ }