package Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k _ fuel Ċ Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . Defin ite RequestBody Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . Http 4 k Exception Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . HttpMethod 4 k Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . Request 4 k Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . Response 4 k Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . internal . HttpClient Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . internal . HttpClient Factory Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . http 4 k . internal . Meta Map Ċ import Ġcom . github . kit tin un f . fuel . core . Fuel Manager Ċ import Ġcom . github . kit tin un f . fuel . http Delete Ċ import Ġcom . github . kit tin un f . fuel . http Get Ċ import Ġcom . github . kit tin un f . fuel . http Post Ċ import Ġcom . github . kit tin un f . fuel . http Put Ċ import Ġcom . github . kit tin un f . result . Result Ċ import Ġmu . Kotlin Logging . logger Ċ Ċ class ĠF uel HttpClient Factory Ġ: ĠHttpClient Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbuild ( meta Map : ĠMeta Map ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF uel HttpClient ( meta Map ) Ċ } Ċ Ċ class ĠF uel HttpClient ( private Ġval Ġmeta Map : ĠMeta Map ) Ġ: ĠHttpClient Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= Ġlogger Ġ{} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġget Ġrid Ġof : Ġredirect Response Interceptor ( this ), Ġvalidator Response Interceptor ( 2 0 0 .. 2 9 9 ) ĊĠĠĠĠĠĠĠ ĠF uel Manager . instance . removeAll Response Intercept ors () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . http Any ( method : ĠHttpMethod 4 k ) Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod 4 k . GET Ġ-> Ġ{ Ġhttp Get () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod 4 k . POST Ġ-> Ġ{ Ġhttp Post () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod 4 k . PUT Ġ-> Ġ{ Ġhttp Put () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod 4 k . DELETE Ġ-> Ġ{ Ġhttp Delete () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod 4 k . PATCH Ġ-> Ġ{ Ġhttp Post () Ġ} Ġ// Ġfuel Ġhack , Ġas Ġit Ġdoesnt Ġsupport Ġpatch ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( request 4 k : ĠRequest 4 k ): ĠResponse 4 k Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" execute ($ request 4 k ) Ġ... Ġ$ meta Map " Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġ(_, Ġresponse , Ġresult ) Ġ= Ġrequest 4 k . url . http Any ( request 4 k . method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( request 4 k . headers ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request 4 k . method Ġ== ĠHttpMethod 4 k . PATCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġworkaround Ġfor Ġfuel Ġas Ġit Ġdoes Ġnot Ġsupport ĠP ATCH Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" X - HTTP - Method - Override " Ġto Ġ" PATCH ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest 4 k . request Body ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDef in ite RequestBody . Defin ite String Body Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody ( it . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDef in ite RequestBody . Defin ite Bytes Body -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody ( it . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. timeout ( timeout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. read Timeout ( read Timeout ). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. response String () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. response ( handler : Ġ( Request , ĠResponse , ĠResult < ByteArray , ĠF uel Error >) Ġ-> ĠUnit ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Header Values Only Ġ= Ġresponse . httpResponse Headers . map Ġ{ Ġit . key Ġto Ġit . value . first () Ġ}. toMap () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> ĠResponse 4 k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstatusCode Ġ= Ġresponse . http StatusCode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody AsString Ġ= Ġresult . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġfirst Header Values Only ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġthrow ĠHttp 4 k Exception (" Failure Ġresult Ġfrom Ġfuel : Ġ$ result ") Ġ// Ġif Ġinternal Ġfuel Ġerror Ġhandlers Ġgot Ġtriggered ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ