Functions/Data/Convert-HashtableToQueryStringOrdered.ps1
Function Convert-HashtableToQueryStringOrdered { [cmdletbinding()] Param ( # Hashtable input [Parameter(Mandatory=$true,ValueFromPipeline=$true)] [System.Collections.Specialized.OrderedDictionary] $hashtable, # Prepend the ? Mark [Parameter(Mandatory=$false)] [boolean] $eroteme = $true, # Encode Key [Parameter(Mandatory=$false)] [boolean] $encodeKey = $false, # Encode Val [Parameter(Mandatory=$false)] [boolean] $encodeVal = $false ) Process { # Split Hashtable into Queries $Queries = foreach ($key in $hashtable.keys) { $sKey = if($encodeKey){$Key | ConvertTo-URLEncoding}else{$Key} $sVal = if($encodeVal){$hashtable[$Key] | ConvertTo-URLEncoding}else{$hashtable[$key]} "$skey=$sval" } # Compose Queries into Querystring $QueryString = Switch ($eroteme) { $TRUE {"?"+"$($Queries -join '&')"} $FALSE {"$($Queries -join '&')"} } # Output QueryString $QueryString } } |