package Ġnet . cord a . irs . utilities Ċ Ċ import Ġokhttp 3 .* Ċ import Ġjava . net . URL Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠA Ġsmall Ġset Ġof Ġutilities Ġfor Ġmaking ĠHttp Calls , Ġa imed Ġat Ġde mos . Ċ Ġ*/ Ċ private Ġval Ġclient Ġby Ġlazy Ġ{ ĊĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 6 0 , ĠTimeUnit . SECONDS ). build () Ċ } Ċ Ċ fun Ġput Json ( url : ĠURL , Ġdata : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġbody Ġ= ĠRequest Body . create ( MediaType . parse (" application / json ; Ġcharset = utf - 8 "), Ġdata ) ĊĠĠĠ Ġreturn Ġmake Request ( Request . Builder (). url ( url ). put ( body ). build ()) Ċ } Ċ Ċ fun Ġpost Json ( url : ĠURL , Ġdata : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġbody Ġ= ĠRequest Body . create ( MediaType . parse (" application / json ; Ġcharset = utf - 8 "), Ġdata ) ĊĠĠĠ Ġreturn Ġmake Request ( Request . Builder (). url ( url ). post ( body ). build ()) Ċ } Ċ Ċ fun Ġupload File ( url : ĠURL , Ġfile : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġbody Ġ= ĠMultip art Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( Multipart Body . FORM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add FormData Part (" rates ", Ġ" example . rates . txt ", ĠRequest Body . create ( MediaType . parse (" text / plain "), Ġfile )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġreturn Ġmake Request ( Request . Builder (). url ( url ). post ( body ). build ()) Ċ } Ċ Ċ private Ġfun Ġmake Request ( request : ĠRequest ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= Ġclient . new Call ( request ). execute () ĊĊĠĠĠ Ġif Ġ(! response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Could Ġnot Ġfulfill ĠHTTP Ġrequest . ĠStatus ĠCode : Ġ${ response . code ()}. ĠMessage : Ġ${ response . body (). string () }") ĊĠĠĠ Ġ} ĊĠĠĠ Ġresponse . close () ĊĠĠĠ Ġreturn Ġresponse . is Successful Ċ } Ċ