package Ġcom . s let ical boy . http Ċ Ċ import Ġcom . jak ew h art on . ret rofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠCreated Ġon Ġ 1 8 - 3 - 2 6 . Ċ Ġ* Ċ Ġ* Ġ@ author Ġle eb in Ċ Ġ* Ġ@ description Ċ Ġ*/ Ċ class ĠRet rofit Client Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclient : ĠOk HttpClient ĊĠĠĠ Ġprivate Ġval Ġretrofit : ĠRet rofit ĊĊĠĠĠ Ġfun Ġ< T > Ġcreate ( service : ĠClass < T >? ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( service Ġ== Ġnull ) Ġthrow ĠNullPointerException (" Api Ġservice Ġis Ġnull ") ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġretrofit Client Ġ= ĠRet rofit Client () ĊĠĠĠĠĠĠĠ Ġfun Ġget (): ĠRet rofit Client Ġ= Ġretrofit Client ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Log Interceptor (). setLevel ( Http Log Interceptor . Level . BODY ) ĊĠĠĠĠĠĠĠ Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging Interceptor ) Ġ// Ġ æīĵåį° ç½ĳç»ľ è¯·æ±Ĥ æĹ¥å¿Ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Rewrite Url Interceptor ()) Ġ// Ġ éĩį åĨĻ Ġurl ï¼Į æĽ¿æį¢ Ġhost ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 3 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( 3 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 3 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry On Connection Failure ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. cookie Jar ( object Ġ: ĠCookie Jar Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġprivate Ġval Ġm Cookies Ġ= Ġhash Map Of < String , ĠList < Cookie >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġoverride Ġfun Ġsave From Response ( url : ĠHttp Url , Ġcookies : ĠMutable List < Cookie >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġm Cookies [ url . toString ()] Ġ= Ġcookies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġoverride Ġfun Ġload For Request ( url : ĠHttp Url ): ĠMutable List < Cookie > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġm Cookies [ url . toString ()] Ġ?: Ġreturn Ġarray ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġreturn Ġlist Ġas ĠMutable List < Cookie > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. cookie Jar ( Cookie Jar Impl ( null )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Constants . HOST _ FA KE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. call Factory Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġåı¯ä»¥ èĢĥèĻĳ åľ¨ è¿ĻéĩĮ åĬ¨æĢģ æĽ¿æį¢ Ġurl ï¼Į å½ĵçĦ¶ ä¹Łåı¯ä»¥ åľ¨ æĭ ¦ æĪª åĻ¨ ä¸Ń æĽ¿æį¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġok HttpClient . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ }