package Ġcom . bu chi . list detail . data . network Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . bu chi . list detail . utils . Ok Http Provider Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ import Ġokhttp 3 . Response Ċ Ċ class ĠNetwork Client Ġconstructor ( ĊĠĠĠ Ġval ĠbaseUrl : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġok HttpClient : ĠOk HttpClient Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠOk Http Provider . get Ok HttpClient () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAppend Ġurl Ġto Ġthe ĠbaseUrl Ġused Ġin Ġcreating Ġan Ġinstance Ġof Ġthis Ġclass Ġand Ġreturn Ġrequest Ġbuilder ĊĠĠĠĠ Ġ* Ġbased Ġon Ġthe Ġverb Ġof Ġapi Ġrequest Ġto Ġbe Ġmade . ĊĠĠĠĠ Ġ* Ġ@ param Ġurl Ġof Ġthe Ġapi Ġrequest Ġto Ġmake Ġa Ġcomplete Ġendpoint Ġwhen Ġappended Ġto ĠbaseUrl . ĊĠĠĠĠ Ġ* Ġ@ param Ġrequest Body Ġto Ġspecify ĠPOST Ġrequest Ġwith Ġthe Ġspecified Ġbody . ĠIf Ġnot Ġpassed , Ġdefault Ġis ĊĠĠĠĠ Ġ* ĠGET Ġrequest . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġappend Url ( url : ĠString , Ġrequest Body : ĠRequest Body ? Ġ= Ġnull ): ĠRequest . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Url Ġ= ĠbaseUrl Ġ+ Ġurl ĊĠĠĠĠĠĠĠ ĠLog . d ( java Class . simple Name , Ġ" Request Ġurl : Ġ$ new Url ") ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( request Body Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( new Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( request Body ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Builder (). url ( new Url ). get () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmake Request ( url : ĠString , Ġbody : ĠRequest Body ? Ġ= Ġnull ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġappend Url ( url , Ġbody ). build () ĊĠĠĠĠĠĠĠ ĠLog . d ( java Class . simple Name , Ġ" Request : Ġ$ request \ n Body : Ġ${ request . body }") ĊĠĠĠĠĠĠĠ Ġreturn Ġok HttpClient . new Call ( request Ġ= Ġrequest ). execute () ĊĠĠĠ Ġ} Ċ }