package Ġcom . kotlin . example . net Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . kotlin . example . data . News Ċ import Ġcom . kotlin . example . utils . log E Ċ import Ġcom . kotlin . example . utils . log I Ċ import Ġokhttp 3 .* Ċ import Ġjava . io . IOException Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . net . ssl . Hostname Verifier Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsh ish ou f eng Ġon Ġ 2 0 2 0 - 0 3 - 3 1 . Ċ Ġ* Ġemail : sh ish ou f eng 1 2 2 7 @ 1 2 6 . com Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ Ġ ç®Ģåįķ å°ģè£ħ ĠOK http Ġä½¿çĶ¨ Ċ Ġ* Ċ Ġ* Ġhttps :// github . com / square / okhttp Ċ Ġ* Ċ Ġ* Ċ Ġ*/ Ċ class ĠEasy Http Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= Ġ" Easy Http " ĊĊĊĠĠĠ Ġval Ġm Ok HttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( 3 0 Ġ* Ġ 1 0 0 0 L , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( 3 0 Ġ* Ġ 1 0 0 0 L , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠ Ġ. write Timeout ( 3 0 Ġ* Ġ 1 0 0 0 L , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠ Ġ. hostname Verifier ( Hostname Verifier Ġ{ Ġhostname , Ġsession Ġ-> Ġtrue Ġ}) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġm Gson Ġ= ĠGson () ĊĊĊĠĠĠ Ġfun Ġget ( url Ġ: ĠString , callback Ġ: ĠNet CallBack < String > ){ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" cache - control ", Ġ" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" postman - token ", Ġ" 0 af 4 c 3 2 9 - 4 c 8 9 - 7 2 6 9 - 9 e 7 6 - 4 7 5 ddc 9 0 3 d 7 e ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġm Ok HttpClient . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object : Callback { ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall , Ġe : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog I ( TAG ," get () Ġ-> Ġon Failure () Ġ${ e . message }") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . cancel () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . onError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall , Ġresponse : ĠResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog I ( TAG ," get () Ġ-> Ġon Response () Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ?. string ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Success ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġèİ·åıĸ Ġ æĸ° éĹ» æķ°æį® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget News ( url : String ?, callback : ĠNet CallBack < News > ){ ĊĊĠĠĠĠĠĠĠ Ġ// Ġæĭ ¼ æİ¥ Ġè¯·æ±Ĥ åľ°åĿĢ Ċ // ĠĠĠĠĠĠĠ Ġval Ġreq Url Ġ= Ġ" http :// v . ju he . cn / tout iao / index ? key =${ Constants . APP _ KEY }& type =${ type Ġ?: Ġ" top "} " ĊĠĠĠĠĠĠĠ Ġ// Ġè¯·æ±Ĥ URL ĊĠĠĠĠĠĠĠ Ġval Ġreq Url Ġ= Ġurl Ġ?: Ġ" http :// c . m . 1 6 3 . com / nc / article / headline / T 1 3 4 8 6 4 7 8 5 3 3 6 3 / 0 - 4 0 . html " ĊĊĠĠĠĠĠĠĠ Ġlog I ( TAG ," get News () Ġreq Url Ġ= Ġ$ req Url Ġ") ĊĊĠĠĠĠĠĠĠ Ġget ( req Url , object Ġ: Net CallBack < String >{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog I ( TAG ," get News () Ġ-> ĠonError () Ġt Ġ= Ġ${ t . message }") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. onError ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog I ( TAG ," get News () Ġ-> ĠonSuccess () Ġdata Ġ= Ġ$ t ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Data Ġ: ĠNews Ġ= Ġif Ġ( t . contains ("< html > ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog E ( TAG ," get News () Ġ-> ĠonSuccess () Ġæķ°æį® ä¸į æŃ£ç¡® ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNews () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog I ( TAG ," get News () Ġ-> ĠonSuccess () Ġæķ°æį® æŃ£ç¡® Ġåı¯ä»¥ è§£æŀĲ ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Gson . fromJson ( t , News :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. on Success ( news Data ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġinterface ĠNet CallBack < T >{ ĊĊĠĠĠĠĠĠĠ Ġfun ĠonSuccess ( t Ġ: ĠT ) ĊĊĠĠĠĠĠĠĠ Ġfun ĠonError ( t : ĠThrowable ) ĊĠĠĠ Ġ} ĊĊ Ċ }