package Ġcom . jiang k ang . requests . dsl Ċ Ċ import Ġio . reactivex . Back pressure Strategy Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ import Ġokhttp 3 . Response Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġji ang k ang Ġon Ġ 2 0 1 8 / 2 / 7 . Ċ Ġ* Ġdescription ï¼ļ Ok http Ġè¯·æ±Ĥ å°ģè£ħ Ġ ç»Ħ æĪĲ DSL Ċ Ġ*/ Ċ class ĠRequest Wrapper Ġ{ ĊĊĠĠĠ Ġvar Ġurl : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġmethod : ĠString Ġ= Ġ" GET " ĊĊĠĠĠ Ġvar Ġbody : ĠRequest Body ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġtimeout : ĠLong Ġ= Ġ 1 0 ĊĊĠĠĠ Ġprivate Ġvar Ġsuccess Callback : Ġ( Response ) Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠ Ġprivate Ġvar Ġfailed Callback : Ġ( Throwable ) Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠ Ġfun ĠonSuccess ( callback : Ġ( Response ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuccess Callback Ġ= Ġcallback ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Failed ( callback : Ġ( Throwable ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfailed Callback Ġ= Ġcallback ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æŃ¤ å¤Ħ è¿ĺ åı¯ä»¥ è¿ĶåĽŀ ä¸Ģä¸ª ç±»åŀĭ ï¼Į ç»Ħ æĪĲ éĵ¾ å¼ı ĊĠĠĠ Ġfun Ġfetch ( exe : ĠRequest Wrapper . () Ġ-> ĠUnit ): ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwrapper Ġ= ĠRequest Wrapper () ĊĠĠĠĠĠĠĠ Ġwrapper . exe () ĊĠĠĠĠĠĠĠ Ġreturn Ġmake Wrapper ( wrapper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Wrapper ( wrapper : ĠRequest Wrapper ): ĠDis posable Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠFlow able . create < Response >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Request ( wrapper )?. let Ġ{ Ġe . onNext ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBack pressure Strategy . BUFFER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrapper . success Callback ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrapper . failed Callback ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Request ( wrapper : ĠRequest Wrapper ): ĠResponse ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest : ĠRequest ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= ĠRequest . Builder (). url ( wrapper . url . toString ()) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( wrapper . method . toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" get " Ġ-> Ġrequest Ġ= Ġrequest Builder . get (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" post " Ġ-> Ġrequest Ġ= Ġrequest Builder . post ( wrapper . body !! ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" delete " Ġ-> Ġrequest Ġ= Ġrequest Builder . delete ( wrapper . body ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" put " Ġ-> Ġrequest Ġ= Ġrequest Builder . put ( wrapper . body !! ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( wrapper . timeout , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( wrapper . timeout , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( wrapper . timeout , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . new Call ( request !! ). execute () ĊĠĠĠ Ġ} ĊĊ Ċ }