/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 7 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . intellij . stats . network . service Ċ Ċ import Ġcom . google . common . net . HttpHeaders Ċ import Ġcom . intellij . openapi . diagnostic . logger Ċ import Ġcom . intellij . openapi . util . text . StringUtil Ċ import Ġcom . intellij . util . io . Http Requests Ċ import Ġorg . apache . commons . codec . binary . Base 6 4 OutputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URLConnection Ċ import Ġjava . util . zip . GZIP OutputStream Ċ Ċ class ĠSimple Request Service : ĠRequest Service () Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠLOG Ġ= Ġlogger < Simple Request Service >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Z ipped ( url : ĠString , Ġfile : ĠFile ): ĠResponse Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz ipped Array Ġ= Ġget Z ipped Content ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHttp Requests . post ( url , Ġnull ). tun er Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setRequest Property ( HttpHeaders . CONTENT _ ENCODING , Ġ" gzip ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. connect Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . write ( z ipped Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ connect Ġrequest . connection . as ResponseData ( z ipped Array . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠHttp Requests . HttpStatus Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Data ( e . statusCode , ĠString Util . not N ul lize ( e . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . debug ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Z ipped Content ( file : ĠFile ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Text Ġ= Ġfile . read Text () ĊĠĠĠĠĠĠĠ Ġreturn ĠG zip Base 6 4 Compressor . compress ( file Text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ( url : ĠString ): ĠResponse Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= ĠHttp Requests . request ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrequest Builder . connect Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Code Ġ= Ġrequest . getResponse Code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Text Ġ= Ġrequest . readString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Data ( response Code , Ġresponse Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . debug ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠURL Connection . as ResponseData ( sent DataSize : ĠInt ?): ĠResponse Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠHttp URLConnection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse Data ( this . response Code , ĠString Util . not N ul lize ( this . response Message , Ġ""), Ġsent DataSize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLOG . error (" Could Ġnot Ġget Ġcode Ġand Ġmessage Ġfrom Ġhttp Ġresponse ") ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠHttp Requests . Request . getResponse Code (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġthis . connection ĊĠĠĠĠĠĠĠ Ġif Ġ( connection Ġis ĠHttp URLConnection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconnection . response Code ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLOG . error (" Could Ġnot Ġget Ġcode Ġfrom Ġhttp Ġresponse ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ data Ġclass ĠResponse Data ( val Ġcode : ĠInt , Ġval Ġtext : ĠString Ġ= Ġ"", Ġval Ġsent DataSize : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġfun Ġis OK (): ĠBoolean Ġ= Ġcode Ġin Ġ 2 0 0 .. 2 9 9 Ċ } ĊĊ Ċ object ĠG zip Base 6 4 Compressor Ġ{ ĊĠĠĠ Ġfun Ġcompress ( text : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġbase 6 4 Stream Ġ= ĠG ZIP OutputStream ( Base 6 4 OutputStream ( output Stream )) ĊĠĠĠĠĠĠĠ Ġbase 6 4 Stream . write ( text . toByteArray ()) ĊĠĠĠĠĠĠĠ Ġbase 6 4 Stream . close () ĊĠĠĠĠĠĠĠ Ġreturn ĠoutputStream . toByteArray () ĊĠĠĠ Ġ} Ċ }