package Ġcom . we ex box . core . module Ċ Ċ import Ġcom . alibaba . fastjson . JSONObject Ċ import Ġcom . ta ob ao . we ex . annotation . JS Method Ċ import Ġcom . ta ob ao . we ex . bridge . JS Callback Ċ import Ġcom . we ex box . core . extension . toJson Map Ċ import Ġcom . we ex box . core . extension . toObject Ċ import Ġcom . we ex box . core . model . Js Options Ċ import Ġcom . we ex box . core . model . Result Ċ import Ġcom . we ex box . core . network . Network Ċ import Ġokhttp 3 .* Ċ import Ġjava . io . IOException ĊĊ Ċ /** Ċ Ġ* ĠAuthor : ĠM ario Ċ Ġ* ĠTime : Ġ 2 0 1 8 / 9 / 1 1 Ġä¸ĭåįĪ 7 : 4 1 Ċ Ġ* ĠDescription : ĠThis Ġis ĠNetwork Module Ċ Ġ*/ Ċ Ċ open Ġclass ĠNetwork Module Ġ: ĠBase Module () Ġ{ ĊĊĠĠĠ Ġ@ JS Method ( ui Thread Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġfun Ġrequest ( options : ĠMap < String , ĠAny >, Ġcallback : ĠJS Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġoptions . toObject ( Js Options :: class . java ) ĊĠĠĠĠĠĠĠ Ġvar Ġmethod Ġ= ĠNetwork . HTTP Method . GET ĊĠĠĠĠĠĠĠ Ġif Ġ( info . method ?. toUpperCase () Ġ== Ġ" POST ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠNetwork . HTTP Method . POST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠResult () Ċ Ċ // ĠĠĠĠĠĠĠ ĠNetwork . request ( info . url !! , Ġmethod , Ġinfo . params , Ġinfo . headers , Ġobject Ġ: ĠCallback < ResponseBody > Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < ResponseBody >, Ġresponse : ĠResponse < ResponseBody >) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ= Ġresponse . code () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresponse . body ()?. string () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( info . response Type ?. toUpperCase () Ġ== Ġ" TEXT ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data [" data "] Ġ= Ġdata Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data Ġ= Ġdata . toJson Map () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error Ġ= Ġresponse . error Body ()?. string () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( result ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < ResponseBody >, Ġt : ĠThrowable ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ= ĠResult . error Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error Ġ= Ġt . message Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( result ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) Ċ Ċ // ĠĠĠĠĠĠĠ Ġinfo . url !! , Ġmethod , Ġinfo . params , Ġinfo . headers ĊĊĊĠĠĠĠĠĠĠ Ġval Ġm Ok HttpClient Ġ= ĠOk HttpClient () ĊĊĠĠĠĠĠĠĠ Ġvar Ġform Encoding Builder : ĠRequest Body Ġ?= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( info . params Ġ!= Ġnull Ġ&& Ġinfo ?. params ?. size !! Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Encoding Builder Ġ= ĠRequest Body . create ( MediaType . parse (" application / json ; charset = utf - 8 "), ĠJSONObject . toJSON String ( info . params )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Encoding Builder Ġ= ĠRequest Body . create ( MediaType . parse (" application / json ; charset = utf - 8 "), Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġrequest Builder Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠ Ġif Ġ( info . headers Ġ!= Ġnull Ġ&& Ġinfo ?. headers ?. size !! Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( param Ġin Ġinfo ?. headers !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( param . key , Ġparam . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġrequest : ĠRequest ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( info . method ?. toUpperCase () Ġ== Ġ" POST ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest Builder . url ( info . url !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Encoding Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest Builder . url ( info . url !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġm Ok HttpClient . new Call ( request ) ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall , Ġe : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ= ĠResult . error Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error Ġ= Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error Ġ= Ġ" ä¼¼ ä¹İ å·² æĸŃ å¼Ģ ä¸İ äºĴ èģĶ ç½ĳ çļĦ éĵ¾æİ¥ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall , Ġresponse : ĠResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ= Ġresponse . code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresponse . body ()?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( info . response Type ?. toUpperCase () Ġ== Ġ" TEXT ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data [" data "] Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data Ġ= Ġdata . toJson Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ= ĠResult . error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error Ġ= Ġresponse . message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ