package Ġa oc . services Ċ Ċ import Ġcom . squareup . okhttp . Ok HttpClient Ċ import Ġcom . squareup . okhttp . Request Ċ import Ġcom . squareup . okhttp . Response Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . net . Cookie Handler Ċ import Ġjava . net . Cookie Manager Ċ import Ġjava . net . Cookie Store Ċ import Ġjava . nio . charset . Charset Ċ Ċ /** Ċ Ġ* ĠGeneric Ġservice Ġto Ġcreate Ġand Ġexecute ĠHTTP Ġrequests Ġthrough Ġthe ĠOk Http Ġlibrary . Ċ Ġ*/ Ċ class ĠRequest Service Ġ{ ĊĠĠĠ Ġprivate Ġval Ġclient : ĠOk HttpClient Ġ= ĠOk HttpClient () ĊĠĠĠ Ġprivate Ġval Ġcookie Manager Ġ= ĠCookie Manager () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠCookie Handler . setDefault ( cookie Manager ) ĊĠĠĠĠĠĠĠ Ġcookie Manager . set Cookie Policy ( java . net . Cookie Policy . ACCEPT _ ALL ) ĊĠĠĠĠĠĠĠ Ġclient . cookie Handler Ġ= Ġcookie Manager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcookie Store : ĠCookie Store ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcookie Manager . cookie Store ĊĊĠĠĠ Ġfun Ġrequest Builder (): ĠRequest . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest . Builder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute ( request : ĠRequest ): ĠSingle < Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġclient . new Call ( it ). execute () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute For String ( request : ĠRequest ): ĠSingle < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . body (). source (). readString ( Charset . forName (" UTF - 8 ")) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ