/* Ċ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 1 9 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġio . ktor . client . request Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . util . date .* Ċ Ċ /** Ċ Ġ* ĠGets Ġthe Ġassociated ĠURL 's Ġhost . Ċ Ġ*/ Ċ public Ġvar ĠHttpRequest Builder . host : ĠString ĊĠĠĠ Ġget () Ġ= Ġurl . host ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġurl . host Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* ĠGets Ġthe Ġassociated ĠURL 's Ġport . Ċ Ġ*/ Ċ public Ġvar ĠHttpRequest Builder . port : ĠInt ĊĠĠĠ Ġget () Ġ= Ġurl . port ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġurl . port Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* ĠSets Ġa Ġsingle Ġheader Ġof Ġ[ key ] Ġwith Ġa Ġspecific Ġ[ value ] Ġif Ġthe Ġvalue Ġis Ġnot Ġnull . Ċ Ġ*/ Ċ public Ġfun ĠHttpRequest Builder . header ( key : ĠString , Ġvalue : ĠAny ?): ĠUnit Ġ= ĊĠĠĠ Ġvalue ?. let Ġ{ Ġheaders . append ( key , Ġit . toString ()) Ġ} Ġ?: ĠUnit Ċ Ċ /** Ċ Ġ* ĠSets Ġa Ġsingle Ġheader Ġof Ġ[ key ] Ġwith Ġa Ġspecific Ġ[ value ] Ġif Ġthe Ġvalue Ġis Ġnot Ġnull . Ċ Ġ*/ Ċ public Ġfun ĠHttpRequest Builder . cookie ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġvalue : ĠString , ĊĠĠĠ Ġmax Age : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġexpires : ĠGMT Date ? Ġ= Ġnull , ĊĠĠĠ Ġdomain : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġpath : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġsecure : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġhttp Only : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġextensions : ĠMap < String , ĠString ?> Ġ= Ġempty Map () Ċ ): ĠUnit Ġ{ ĊĠĠĠ Ġval Ġrendered Cookie Ġ= ĠCookie ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue , ĊĠĠĠĠĠĠĠ Ġmax Age Ġ= Ġmax Age , ĊĠĠĠĠĠĠĠ Ġexpires Ġ= Ġexpires , ĊĠĠĠĠĠĠĠ Ġdomain Ġ= Ġdomain , ĊĠĠĠĠĠĠĠ Ġpath Ġ= Ġpath , ĊĠĠĠĠĠĠĠ Ġsecure Ġ= Ġsecure , ĊĠĠĠĠĠĠĠ Ġhttp Only Ġ= Ġhttp Only , ĊĠĠĠĠĠĠĠ Ġextensions Ġ= Ġextensions ĊĠĠĠ Ġ). let (:: render Cookie Header ) ĊĊĠĠĠ Ġif Ġ( HttpHeaders . Cookie Ġ! in Ġheaders ) Ġ{ ĊĠĠĠĠĠĠĠ Ġheaders . append ( HttpHeaders . Cookie , Ġrendered Cookie ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠClient Ġcookies Ġare Ġstored Ġin Ġa Ġsingle Ġheader Ġ" Cookies " Ġand Ġmultiple Ġvalues Ġare Ġseparated Ġwith Ġ";" ĊĠĠĠ Ġheaders [ HttpHeaders . Cookie ] Ġ= Ġheaders [ HttpHeaders . Cookie ] Ġ+ Ġ"; Ġ" Ġ+ Ġrendered Cookie Ċ } Ċ Ċ /** Ċ Ġ* ĠSets Ġa Ġsingle ĠURL Ġquery Ġparameter Ġof Ġ[ key ] Ġwith Ġa Ġspecific Ġ[ value ] Ġif Ġthe Ġvalue Ġis Ġnot Ġnull . ĠCan Ġnot Ġbe Ġused Ġto Ġset Ċ Ġ* Ġform Ġparameters Ġin Ġthe Ġbody . Ċ Ġ*/ Ċ public Ġfun ĠHttpRequest Builder . parameter ( key : ĠString , Ġvalue : ĠAny ?): ĠUnit Ġ= ĊĠĠĠ Ġvalue ?. let Ġ{ Ġurl . parameters . append ( key , Ġit . toString ()) Ġ} Ġ?: ĠUnit Ċ Ċ /** Ċ Ġ* ĠSets Ġthe Ġ` Accept ` Ġheader Ġwith Ġa Ġspecific Ġ[ contentType ]. Ċ Ġ*/ Ċ public Ġfun ĠHttpRequest Builder . accept ( contentType : ĠContentType ): ĠUnit Ġ= ĊĠĠĠ Ġheaders . append ( HttpHeaders . Accept , ĠcontentType . toString ()) Ċ