package Ġio . connect . wifi . sdk . network Ċ Ċ import Ġio . connect . wifi . sdk . internal . Log Utils Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . io . OutputStream Ċ import Ġjava . lang . Exception Ċ import Ġjava . lang . StringBuilder Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URL Ċ import Ġjavax . net . ssl . Https URLConnection Ċ Ċ internal Ġabstract Ġclass ĠBase Get Network Command Ġ: ĠNetwork Command Ġ{ ĊĊĠĠĠ Ġinternal Ġabstract Ġfun ĠgetUrl Link (): ĠString ĊĊĠĠĠ Ġinternal Ġabstract Ġfun Ġget ApiKey (): ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġsend Request ( body : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġconnection : ĠHttp URLConnection ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġoutput : ĠOutputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠinputStream : ĠInputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Ġ= ĠgetUrl Link () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( link ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . debug ("[ Base Get Network Command ] ĠBegin Ġrequest :\ n url : Ġ$ url ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Ġ= Ġif Ġ( link . startsWith (" https ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . open Connection () Ġas ĠHttp s URLConnection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġurl . open Connection () Ġas ĠHttp URLConnection ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Method Ġ= Ġ" GET " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Request Property (" x - api - key ", Ġget ApiKey ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Request Property (" Host ", Ġurl . host ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Request Property (" Accept ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream Ġ= Ġconnection . inputStream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠBufferedReader ( InputStream Reader ( inputStream , Ġ" utf - 8 ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Line : ĠString ? Ġ= Ġreader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( response Line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . append ( response Line . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Line Ġ= Ġreader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse . toString (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . debug ("[ Base Get Network Command ] ĠResponse Ġreceived \ n $ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . debug ("[ Base Get Network Command ] ĠError ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException ( e ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection ?. disconnect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream ?. close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }