package Ġcom . av ito . report . internal Ċ Ċ import Ġcom . av ito . report . internal . model . R fc Rpc Request Ċ import Ġcom . github . sal om on br ys . kot son . fromJson Ċ import Ġcom . google . gson . Gson Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ Ċ internal Ġclass ĠJson Rpc Request Provider ( ĊĠĠĠ Ġprivate Ġval Ġhost : ĠString , ĊĠĠĠ Ġprivate Ġval ĠhttpClient : ĠOk HttpClient , ĊĠĠĠ Ġprivate Ġval Ġgson : ĠGson Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġjson Mime Ġ= Ġ" application / json " ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġjson Rpc Request ( request : ĠR fc Rpc Request ): ĠT Ġ= Ġinternal Request ( request ) ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġbatch Request ( request : ĠList < R fc Rpc Request >): ĠT Ġ= Ġinternal Request ( request ) ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠResponse Ġ: ĠAny > Ġinternal Request ( request : ĠAny ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient . new Call ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( host . remove Suffix ("/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Accept ", Ġjson Mime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġjson Mime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( RequestBody . create ( MediaType . get ( json Mime ), Ġgson . toJson ( request ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ). execute () ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body ()?. string () ĊĠĠĠĠĠĠĠ Ġif Ġ( response Body Ġ!= Ġnull Ġ&& Ġresponse . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( response Body ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Request Ġfailed : Ġ${ response . message ()} Ġ${ response Body }\ n $ request ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ