package Ġio . github . mult ic atch . k sock . http Ċ Ċ import Ġio . github . mult ic atch . k sock . http . request . Entity Reader Ċ import Ġio . github . mult ic atch . k sock . http . request . Header Reader Ċ import Ġio . github . mult ic atch . k sock . http . request . Http Info Ċ import Ġjava . io . BufferedReader Ċ Ċ fun Ġrequest Of ( http Info : ĠHttp Info , Ġheaders : ĠMap < String , ĠString >, Ġraw Entity : ĠByteArray , Ġentity : ĠString ?): ĠHttpRequest Ġ{ ĊĠĠĠ Ġval Ġresource Without Params Ġ= Ġhttp Info . resource . substring Before Last (" ?") ĊĠĠĠ Ġreturn ĠHttpRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Method Ġ= Ġhttp Info . method , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Uri Ġ= Ġresource Without Params , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams Ġ= Ġhttp Info . queryParams (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Version Ġ= Ġhttp Info . version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Entity Ġ= Ġraw Entity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Ġ= Ġentity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Address Ġ= Ġhttp Info . remote Address ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠBufferedReader . read Single Header ( http Info : ĠHttp Info , Ġheader Read ers : ĠList < Header Reader >): ĠPair < String , ĠString >? Ġ{ ĊĠĠĠ Ġif Ġ(! this . ready ()) Ġreturn Ġnull ĊĠĠĠ Ġval Ġline Ġ= Ġread Line () ĊĊĠĠĠ Ġreturn Ġheader Read ers . fold ( null Ġas ĠPair < String , ĠString > ?) Ġ{ Ġresult , Ġreader Ġ-> ĊĠĠĠĠĠĠĠ Ġresult Ġ?: Ġreader . read Single ( http Info , Ġline ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠByteArray . convert Entity ( entity Read ers : ĠList < Entity Reader >, Ġheaders : ĠMap < String , ĠString >) Ġ= ĊĠĠĠĠĠĠĠ Ġentity Read ers . fold ( null Ġas ĠString ?) Ġ{ Ġresult , Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ?: Ġreader . read ( headers , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} Ċ