package Ġcom . example . pc _ remote _ android . networking Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Request Queue Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . toolbox . JsonObject Request Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠHTTP Client ( private Ġval ĠbaseUrl : ĠString , Ġprivate Ġval Ġqueue : ĠRequest Queue ) Ġ{ ĊĊĠĠĠ Ġ/** ĠA Ġgeneric Ġfunction Ġthat Ġmakes Ġa ĠGET Ġrequest Ġto Ġthe Ġspecified Ġresource ĠURL Ġ*/ ĊĠĠĠ Ġfun Ġget ( ĊĠĠĠĠĠĠĠ Ġ/** ĠThe ĠURL Ġto Ġthe Ġrequired Ġresource . ĠWill Ġbe Ġapp ene ded Ġto Ġthe Ġbase URL Ġthat Ġis Ġpassed Ġin Ġthe Ġconstructor . ĊĠĠĠĠĠĠĠĠ Ġ* ĠMake Ġsure Ġthat Ġthat Ġthis Ġresource ĠURL Ġdoes ĠNOT Ġstart Ġwith Ġa Ġslash Ġ'/' ĊĠĠĠĠĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠĠĠĠĠ Ġresource Url : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġresponse Ġhandler Ġ- Ġpass Ġnull Ġif Ġyou Ġdon 't Ġwant Ġto Ġhandle Ġthe Ġresponse . ĠIn Ġthat Ġcase Ġit Ġwill Ġbe Ġsimply Ġlogged Ġas Ġa Ġdebug Ġmessage Ġto Ġthe Ġlog cat . Ġ*/ ĊĠĠĠĠĠĠĠ Ġresponse Listener : ĠResponse . Listener < org . json . JSONObject > ?, ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġerror Ġhandler Ġ- Ġpass Ġnull Ġif Ġyou Ġdon 't Ġwant Ġto Ġhandle Ġthe Ġerrors . Ġ*/ ĊĠĠĠĠĠĠĠ Ġerror Listener : ĠResponse . Error Listener ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl : ĠString Ġ= ĠbaseUrl . plus ( resource Url ) ĊĠĠĠĠĠĠĠ ĠLog . d (" GET ", Ġresource Url ) ĊĠĠĠĠĠĠĠ ĠLog . d (" GET ", Ġurl ) ĊĊĠĠĠĠĠĠĠ Ġval Ġget Request Ġ= ĠJsonObject Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Method . GET , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġresponse Ġ-> Ġ// Ġdisplay Ġresponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Listener ?. on Response ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġerror Listener ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġit Ġto Ġthe ĠRequest Queue ĊĠĠĠĠĠĠĠ Ġqueue . add ( getRequest ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠA Ġgeneric Ġfunction Ġthat Ġmakes Ġa ĠPOST Ġrequest Ġto Ġthe Ġspecified Ġresource ĠURL . ĠOptionally Ġtakes Ġposts Ġa ĠJSON Ġbody . Ġ*/ ĊĠĠĠ Ġfun Ġpost ( ĊĠĠĠĠĠĠĠ Ġ/** ĠThe ĠURL Ġto Ġthe Ġrequired Ġresource . ĠWill Ġbe Ġapp ene ded Ġto Ġthe Ġbase URL Ġthat Ġis Ġpassed Ġin Ġthe Ġconstructor . ĊĠĠĠĠĠĠĠĠ Ġ* ĠMake Ġsure Ġthat Ġthat Ġthis Ġresource ĠURL Ġdoes ĠNOT Ġstart Ġwith Ġa Ġslash Ġ'/' ĊĠĠĠĠĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠĠĠĠĠ Ġresource Url : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe ĠJSON Ġbody Ġof Ġthe Ġrequest . ĠPass Ġnull Ġif Ġyou Ġdon 't Ġwant Ġto Ġpass Ġa Ġbody . Ġ*/ ĊĠĠĠĠĠĠĠ ĠjsonObject : ĠJSONObject ?, ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġresponse Ġhandler Ġ- Ġpass Ġnull Ġif Ġyou Ġdon 't Ġwant Ġto Ġhandle Ġthe Ġresponse . ĠIn Ġthat Ġcase Ġit Ġwill Ġbe Ġsimply Ġlogged Ġas Ġa Ġdebug Ġmessage Ġto Ġthe Ġlog cat . Ġ*/ ĊĠĠĠĠĠĠĠ Ġresponse Listener : ĠResponse . Listener < org . json . JSONObject > ?, ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġerror Ġhandler Ġ- Ġpass Ġnull Ġif Ġyou Ġdon 't Ġwant Ġto Ġhandle Ġthe Ġerrors . Ġ*/ ĊĠĠĠĠĠĠĠ Ġerror Listener : ĠResponse . Error Listener ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl : ĠString Ġ= ĠbaseUrl . plus ( resource Url ) ĊĠĠĠĠĠĠĠ ĠLog . d (" POST ", Ġresource Url ) ĊĠĠĠĠĠĠĠ ĠLog . d (" POST ", Ġurl ) ĊĠĠĠĠĠĠĠ ĠLog . d (" JSON ", ĠjsonObject . toString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġpost Request Ġ= ĠJsonObject Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Method . POST , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġresponse Ġ-> Ġ// Ġdisplay Ġresponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Listener ?. on Response ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġerror Listener ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġit Ġto Ġthe ĠRequest Queue ĊĠĠĠĠĠĠĠ Ġqueue . add ( post Request ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ