package Ġcn . y ook ing . gen sh in . utils . okhttp Ċ Ċ import Ġandroid . util . Log Ċ import Ġokhttp 3 . Call Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy ook ing Ġon Ġ 2 0 2 1 / 9 / 2 2 . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġy ook ing . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ class ĠOk http Util Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG : ĠString Ġ= Ġ" okhttp Log " // æĹ¥å¿Ĺ æĬ ¬ å¤´ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREAD _ TIMEOUT : ĠLong Ġ= Ġ 3 0 // è¯»åıĸ è¶ħæĹ¶ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWRITE _ TIMEOUT : ĠLong Ġ= Ġ 3 0 // åĨĻåħ¥ è¶ħæĹ¶ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCONNECT _ TIMEOUT : ĠLong Ġ= Ġ 3 0 // è¿ŀæİ¥ è¶ħæĹ¶ ĊĊĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠOk http Util Ġby Ġlazy ( mode Ġ= ĠLazy Thread Safety Mode . SYN CH RON IZED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk http Util () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġok HttpClient : ĠOk HttpClient ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// å¼ķåħ¥ log æĹ¥å¿Ĺ ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠHttp Logging Interceptor . Logger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlog ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinterceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY // æĹ¥å¿Ĺ çŃī çº§ ĊĠĠĠĠĠĠĠ Ġok HttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( READ _ TIMEOUT , ĠTimeUnit . SECONDS )// è®¾ç½® è¯»åıĸ è¶ħæĹ¶ æĹ¶éĹ´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( WRITE _ TIMEOUT , ĠTimeUnit . SECONDS )// è®¾ç½® åĨĻ çļĦ è¶ħæĹ¶ æĹ¶éĹ´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( CONNECT _ TIMEOUT , ĠTimeUnit . SECONDS )// è®¾ç½® è¿ŀæİ¥ è¶ħæĹ¶ æĹ¶éĹ´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry On Connection Failure ( true )// æĸŃ çº¿ éĩį è¿ŀ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( interceptor )// æ·»åĬł æĭ ¦ æĪª åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget ( url : ĠString , Ġcallback : ĠString Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . onStart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder (). url ( url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall Ġ= Ġok HttpClient . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . enqueue ( callback ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . onError (- 1 , Ġe . message Ġ?: Ġ" åıĳçĶŁ æľª çŁ¥ éĶĻè¯¯ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on End () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }