package Ġeu . kan ade . t ach iy omi . anime extension . en . anime pa he Ċ Ċ import Ġandroid . util . Base 6 4 . DEFAULT Ċ import Ġandroid . util . Base 6 4 . encode ToString Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . Data OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . io . Unsupported EncodingException Ċ import Ġjava . lang . Exception Ċ import Ġjava . lang . StringBuilder Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . Inet SocketAddress Ċ import Ġjava . net . Malformed URLException Ċ import Ġjava . net . Proxy Ċ import Ġjava . net . URL Ċ import Ġjava . net . URL Encoder Ċ import Ġjava . util . HashMap Ċ import Ġjava . util . zip . GZIP InputStream Ċ Ċ // Ġst olen Ġfrom Ġhttps :// github . com / R ag hav JH / dd os guard bypass Ċ class ĠD dos Guard By pass ( url : ĠString ?) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġh g : ĠHttp Get ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Ip : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Port Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġis By passed Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġurl : ĠURL Ġ= ĠURL ( url ) ĊĊĠĠĠ Ġfun Ġbypass (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġh g Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( proxy Ip Ġ!= Ġnull ) ĠHttp Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . toString (), Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Port ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse ĠHttp Get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The ĠURL Ġyou Ġentered Ġwas Ġnot Ġproper .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠSend Ġfirst Ġget Ġrequest ĊĠĠĠĠĠĠĠ Ġh g !!. get () ĊĠĠĠĠĠĠĠ Ġ// ĠPrepare ĠPOST Ġrequest ĊĠĠĠĠĠĠĠ Ġ// ĠForm Ġparameters ĊĠĠĠĠĠĠĠ Ġvar Ġh Ġ= Ġencode ToString (( url . protocol Ġ+ Ġ" ://" Ġ+ Ġurl . host ). toByteArray (), ĠDEFAULT ) ĊĠĠĠĠĠĠĠ Ġvar Ġu Ġ= Ġencode ToString ("/ ". toByteArray (), ĠDEFAULT ) ĊĠĠĠĠĠĠĠ Ġvar Ġp : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( url . port Ġ!= Ġ- 1 ) Ġp Ġ= Ġencode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . port . toString (). toByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Ġ= ĠURL Encoder . encode ( h , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġu Ġ= ĠURL Encoder . encode ( u , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Ġ= ĠURL Encoder . encode ( p , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Internal Ġerror Ġoccured Ġin Ġbypass . Ġ( UTF - 8 Ġencoding Ġnot Ġsupported ?) ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpost Content Ġ= ĠString . format (" u =% s & h =% s & p =% s ", Ġu , Ġh , Ġp ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhp : ĠHttp Post Ġ= Ġif Ġ( proxy Ip Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . protocol Ġ+ Ġ" :// dd gu . dd os - guard . net / dd gu /", Ġpost Content , Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Port ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . protocol Ġ+ Ġ" :// dd gu . dd os - guard . net / dd gu /", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSleep Ġ 5 Ġseconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 5 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" bypass Ġwas Ġnot Ġgiven Ġenough Ġtime Ġto Ġpause Ġas Ġthread Ġwas Ġinterrupted .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġredirect ĠURL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhp . post ( true ) Ġreturns Ġthe ĠHTML Ġresponse , Ġwhile Ġhp . post ( false ) Ġreturns Ġthe Ġlocation Ġfrom Ġa ĠHTTP Ġ 3 0 1 Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre dir Url : ĠString Ġ= Ġhp . post ( false ) !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġrequest Ġwill Ġrequire Ġcookie Ġstorage , Ġso Ġuse Ġthat . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh g !!. set Store Cookies ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh g !!. set Url ( red ir Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNot Same Host Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh g !!. get () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAT ĠTHIS ĠST AGE ĠWE ĠHAVE ĠBY PAS SED , Ġreturn Ġthe Ġcookie Ġback Ġto Ġthe Ġuser Ġso Ġthey Ġcan Ġuse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis By passed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh g !!. cookies AsString ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The ĠURL Ġyou Ġentered Ġwas Ġnot Ġproper .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( ĊĠĠĠĠĠĠĠ ĠMal formed URLException :: class , ĊĠĠĠĠĠĠĠ ĠNot Same Host Exception :: class , ĊĠĠĠĠĠĠĠ ĠNot Y et By passed Exception :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġoperator Ġfun Ġget ( page : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is By passed ) Ġthrow ĠNot Y et By passed Exception (" You Ġhave Ġto Ġbypass Ġbefore Ġgetting Ġa Ġpage Ġusing Ġthe Ġbypass () Ġmethod .") ĊĠĠĠĠĠĠĠ Ġh g !!. set Url ( page ) ĊĠĠĠĠĠĠĠ Ġreturn Ġh g !!. get () !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ get : Throws ( Not Y et By passed Exception :: class ) ĊĠĠĠ Ġval Ġcookies AsString : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is By passed ) Ġthrow ĠNot Y et By passed Exception (" You Ġhave Ġto Ġbypass Ġbefore Ġgetting Ġa Ġpage Ġusing Ġthe Ġbypass () Ġmethod .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġh g !!. cookies AsString !! ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNot Y et By passed Exception ( exception : ĠString ?) Ġ: ĠException ( exception ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠserialVersionUID Ġ= Ġ 1 L ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNot Same Host Exception ( exception : ĠString ?) Ġ: ĠException ( exception ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠserialVersionUID Ġ= Ġ 1 L ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠHttp Get ( private Ġvar Ġurl : ĠString ?, Ġstore Cookies : ĠBoolean ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhost : ĠString Ġ= ĠURL ( url ). host ĊĠĠĠ Ġprivate Ġvar Ġstore Cookies : ĠBoolean ĊĠĠĠ Ġprivate Ġvar Ġcookies : ĠHashMap < String , ĠString >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Ip : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Port Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( url : ĠString ?, Ġstore Cookies : ĠBoolean , Ġproxy Ip : ĠString ?, Ġproxy Port : ĠInt ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠ Ġstore Cookies ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . proxy Ip Ġ= Ġproxy Ip ĊĠĠĠĠĠĠĠ Ġthis . proxy Port Ġ= Ġproxy Port ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget (): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠForm ĠURL ĊĠĠĠĠĠĠĠ Ġval Ġobj : ĠURL Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠURL ( url ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Bad ĠURL Ġin ĠHttp Get ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġcon : ĠHttp URLConnection ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠOpen Ġconnection ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcon Ġ= Ġif Ġ( proxy Ip Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠProxy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProxy . Type . HTTP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInet SocketAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Port ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj . open Connection ( p ) Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj . open Connection () Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Could Ġnot Ġestablish Ġconnection Ġto Ġdestination ĠURL Ġin ĠHttp Get ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġconnection Ġis Ġopen , Ġproceed . ĠOtherwise , Ġreturn Ġnull . ĊĠĠĠĠĠĠĠ Ġif Ġ( con Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġmethod Ġas ĠGET ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . request Method Ġ= Ġ" GET " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 0 s Ġtimeout Ġfor Ġboth Ġconnecting Ġand Ġreading . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . connect Timeout Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . read Timeout Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . instance Follow Redirect s Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġheaders Ġto Ġrepresent Ġa ĠChrome Ġbrowser Ġrequest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Headers ( con ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReturn ĠHTML Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġread And GetResponse ( con , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠError Ġis Ġexpected Ġto Ġoccur Ġdue Ġto Ġ 4 0 3 , Ġstart Ġreceiving Ġerror Ġstream . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġread And GetResponse ( con , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e 1 . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġnull . ĠIf Ġthere Ġwas Ġvalid Ġcontent , Ġit Ġwould Ġhave Ġbeen Ġreturned Ġin ĊĠĠĠĠĠĠĠ Ġ// Ġreturn Ġhtml . toString (); ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċĉ Ġ* Ċĉ Ġ* ĠThe Ġerror Ġresponse Ġis Ġcompressed Ġusing ĠG ZIP . ĠIt Ġis Ġoriginally ĠB rot li , Ġbut Ġthe Ċĉ Ġ* ĠAccept - Encoding Ġheader Ġhas Ġbeen Ġaltered Ġto Ġonly Ġaccept Ġgzip Ċĉ Ġ* Ċĉ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġread And GetResponse ( con : ĠHttp URLConnection , Ġerror Stream : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠBufferedReader ( InputStream Reader ( get Valid Stream ( con , Ġerror Stream ))). use Ġ{ Ġ` in ` Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRead ĠHTML Ġline Ġby Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinput Line : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAppend Ġhtml Content Ġline Ġby Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(` in `. readLine (). also Ġ{ Ġinput Line Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhtml . append ( input Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStore Ġcookies , Ġif Ġrequired . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( store Cookies ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrp Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . header Fields ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġrp . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġheader Ġtype Ġis Ġset Ġcookie , Ġset Ġthe Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( key Ġ!= Ġnull Ġ&& Ġkey Ġ== Ġ" Set - Cookie ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġrp [ key ] !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSplit Ġat Ġ';' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . split ("; ". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThen , Ġsplit Ġthe Ġfirst Ġbit Ġat Ġ"=" Ġto Ġget Ġkey , Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcontent [ 0 ]. split (" =". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġin Ġhash map ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookies ! ![ content [ 0 ]] Ġ= Ġcontent [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhtml . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Headers ( con : ĠHttp URLConnection ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Accept ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / html , application / xhtml + xml , application / xml ; q = 0 . 9 , image / webp , image / ap ng ,* /* ; q = 0 . 8 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Accept - Encoding ", Ġ" gzip , Ġdef late ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Accept - Language ", Ġ" en - US , en ; q = 0 . 9 ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Cache - Control ", Ġ" no - cache ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Connection ", Ġ" keep - alive ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Pr agma ", Ġ" no - cache ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Upgrade - In secure - Requests ", Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 7 1 . 0 . 3 5 7 8 . 9 8 ĠSafari / 5 3 7 . 3 6 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġcookies : ĠString ? ĊĠĠĠĠĠĠĠ Ġif Ġ( cookies AsString . also Ġ{ Ġcookies Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġcon . setRequest Property (" Cookie ", Ġcookies ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Malformed URLException :: class , ĠNot Same Host Exception :: class ) ĊĠĠĠ Ġfun Ġset Url ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCannot Ġchange Ġhost . ĊĠĠĠĠĠĠĠ Ġif Ġ( URL ( url ). host Ġ== Ġhost ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . url Ġ= Ġurl ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNot Same Host Exception (" Cannot Ġchange Ġthe Ġhost Ġin ĠHttp Get Ġclass .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġget Valid Stream ( con : ĠHttp URLConnection , Ġerror : ĠBoolean ): ĠInputStream Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( con . getHeader Field (" content - encoding ") Ġ!= Ġnull Ġ&& Ġcon . getHeader Field (" content - encoding ") Ġ== Ġ" gzip ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG ZIP InputStream ( con . error Stream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG ZIP InputStream ( con . inputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . error Stream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . inputStream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Store Cookies ( store Cookies : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . store Cookies Ġ= Ġstore Cookies ĊĠĠĠĠĠĠĠ Ġif Ġ( this . store Cookies ) Ġcookies Ġ= ĠHashMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBuild Ġcookies ĊĠĠĠ Ġval Ġcookies AsString : ĠString ĊĠĠĠ Ġ// ĠRemove Ġlast Ġcharacter Ġwhich Ġis Ġ';' Ġas Ġthe Ġlast Ġcookie Ġdoes Ġnot Ġhave Ġa Ġ';' ĊĠĠĠ Ġ// ĠSet Ġthe Ġcookie Ġproperty ĊĠĠĠ Ġ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( store Cookies Ġ&& Ġcookies !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġcookies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġcookies !!. keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . append ( key Ġ+ Ġ"=" Ġ+ Ġcookies ! ![ key ] Ġ+ Ġ"; Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfinal Cookies Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRemove Ġlast Ġcharacter Ġwhich Ġis Ġ';' Ġas Ġthe Ġlast Ġcookie Ġdoes Ġnot Ġhave Ġa Ġ';' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Cookies Ġ= Ġfinal Cookies . substring ( 0 , Ġfinal Cookies . length Ġ- Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġcookie Ġproperty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfinal Cookies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . store Cookies Ġ= Ġstore Cookies ĊĠĠĠĠĠĠĠ Ġif Ġ( this . store Cookies ) Ġcookies Ġ= ĠHashMap () ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠHttp Post ( ĊĠĠĠ Ġprivate Ġvar Ġurl : ĠString ?, ĊĠĠĠ Ġprivate Ġvar Ġpost Content : ĠString , ĊĠĠĠ Ġprivate Ġval Ġstore Cookies : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcookies : ĠHashMap < String , ĠString >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Ip : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproxy Port Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġurl : ĠString ?, ĊĠĠĠĠĠĠĠ Ġpost Content : ĠString , ĊĠĠĠĠĠĠĠ Ġstore Cookies : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġproxy Ip : ĠString ?, ĊĠĠĠĠĠĠĠ Ġproxy Port : ĠInt ĊĠĠĠ Ġ) Ġ: Ġthis ( url , Ġpost Content , Ġstore Cookies ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . proxy Ip Ġ= Ġproxy Ip ĊĠĠĠĠĠĠĠ Ġthis . proxy Port Ġ= Ġproxy Port ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċĉ Ġ* Ċĉ Ġ* Ċĉ Ġ* Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġpost ( getResponse String : ĠBoolean ): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠForm ĠURL ĊĠĠĠĠĠĠĠ Ġval Ġobj : ĠURL Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠURL ( url ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Bad ĠURL Ġin ĠHttp Post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġcon : ĠHttp URLConnection ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠOpen Ġconnection ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOnly Ġuse Ġproxy Ġif Ġits Ġset . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcon Ġ= Ġif Ġ( proxy Ip Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠProxy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProxy . Type . HTTP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInet SocketAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproxy Port ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj . open Connection ( p ) Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj . open Connection () Ġas ĠHttp URLConnection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Could Ġnot Ġestablish Ġconnection Ġto Ġdestination ĠURL Ġin ĠHttp Post ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġconnection Ġis Ġopen , Ġproceed . ĠOtherwise , Ġreturn Ġnull . ĊĠĠĠĠĠĠĠ Ġif Ġ( con Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġmethod Ġas ĠPOST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . request Method Ġ= Ġ" POST " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 0 s Ġtimeout Ġfor Ġboth Ġconnecting Ġand Ġreading . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . connect Timeout Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . read Timeout Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġoutput Ġtoo . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . do Output Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDon 't Ġredirect ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . instance Follow Redirect s Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġheaders Ġto Ġrepresent Ġa ĠChrome Ġbrowser Ġrequest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Headers ( con ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWrite ĠPOST Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData OutputStream ( con . output Stream ). use Ġ{ Ġout Ġ-> Ġout . write Bytes ( post Content ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġto Ġwrite ĠPOST Ġcontent Ġin ĠHttp Post ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReceive ĠHTML Ġresponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( getResponse String ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread And GetResponse ( con ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . getHeader Field (" location ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġnull . ĠIf Ġthere Ġwas Ġvalid Ġcontent , Ġit Ġwould Ġhave Ġbeen Ġreturned Ġin ĊĠĠĠĠĠĠĠ Ġ// Ġreturn Ġhtml . toString (); ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċĉ Ġ* Ċĉ Ġ* ĠThe Ġerror Ġresponse Ġis Ġcompressed Ġusing ĠG ZIP . ĠIt Ġis Ġoriginally ĠB rot li , Ġbut Ġthe Ċĉ Ġ* ĠAccept - Encoding Ġheader Ġhas Ġbeen Ġaltered Ġto Ġonly Ġaccept Ġgzip Ċĉ Ġ* Ċĉ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġread And GetResponse ( con : ĠHttp URLConnection ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠBufferedReader ( InputStream Reader ( get Valid Stream ( con ))). use Ġ{ Ġ` in ` Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRead ĠHTML Ġline Ġby Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinput Line : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAppend Ġhtml Content Ġline Ġby Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(` in `. readLine (). also Ġ{ Ġinput Line Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhtml . append ( input Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStore Ġcookies , Ġif Ġrequired . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( store Cookies ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrp Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . header Fields ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġrp . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġheader Ġtype Ġis Ġset Ġcookie , Ġset Ġthe Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( key Ġ!= Ġnull Ġ&& Ġkey Ġ== Ġ" Set - Cookie ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġrp [ key ] !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSplit Ġat Ġ';' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . split ("; ". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThen , Ġsplit Ġthe Ġfirst Ġbit Ġat Ġ"=" Ġto Ġget Ġkey , Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcontent [ 0 ]. split (" =". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġin Ġhash map ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookies ! ![ content [ 0 ]] Ġ= Ġcontent [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhtml . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Headers ( con : ĠHttp URLConnection ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Accept ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / html , application / xhtml + xml , application / xml ; q = 0 . 9 , image / webp , image / ap ng ,* /* ; q = 0 . 8 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Accept - Encoding ", Ġ" gzip , Ġdef late ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Accept - Language ", Ġ" en - US , en ; q = 0 . 9 ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Cache - Control ", Ġ" no - cache ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Connection ", Ġ" keep - alive ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Content - Length ", Ġpost Content . toByteArray (). size . toString ()) ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Pr agma ", Ġ" no - cache ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property (" Upgrade - In secure - Requests ", Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġcon . setRequest Property ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 7 1 . 0 . 3 5 7 8 . 9 8 ĠSafari / 5 3 7 . 3 6 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġcookies : ĠString ? ĊĠĠĠĠĠĠĠ Ġif Ġ( cookies AsString . also Ġ{ Ġcookies Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġcon . setRequest Property (" Cookie ", Ġcookies ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġget Valid Stream ( con : ĠHttp URLConnection ): ĠInputStream Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( con . getHeader Field (" content - encoding ") Ġ!= Ġnull Ġ&& Ġcon . getHeader Field (" content - encoding ") Ġ== Ġ" gzip ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG ZIP InputStream ( con . inputStream ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcon . inputStream ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBuild Ġcookies ĊĠĠĠ Ġprivate Ġval Ġcookies AsString : ĠString ĊĠĠĠ Ġ// ĠRemove Ġlast Ġcharacter Ġwhich Ġis Ġ';' Ġas Ġthe Ġlast Ġcookie Ġdoes Ġnot Ġhave Ġa Ġ';' ĊĠĠĠ Ġ// ĠSet Ġthe Ġcookie Ġproperty ĊĠĠĠ Ġ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( store Cookies Ġ&& Ġcookies !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġcookies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġcookies !!. keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . append ( key Ġ+ Ġ"=" Ġ+ Ġcookies ! ![ key ] Ġ+ Ġ"; Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfinal Cookies Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRemove Ġlast Ġcharacter Ġwhich Ġis Ġ';' Ġas Ġthe Ġlast Ġcookie Ġdoes Ġnot Ġhave Ġa Ġ';' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Cookies Ġ= Ġfinal Cookies . substring ( 0 , Ġfinal Cookies . length Ġ- Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġcookie Ġproperty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfinal Cookies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . store Cookies ) Ġcookies Ġ= ĠHashMap () ĊĠĠĠ Ġ} Ċ } Ċ