Et proxy-værtsnavn kan indeholde internationale tegn i sin viste form. En klient eller resolver, der forventer IDNA ASCII-formen, har brug for at få det værtsnavn konverteret, ikke en vilkårlig procent-escapet kopi af hele URL'en.

I PowerShell eksponerer .NET konverteringen direkte:

$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080

$proxy = New-Object System.Net.WebProxy($endpoint.Uri)

unicodeProxyHost er kun domænenavnet. Porten og skemaet holdes adskilt. Brug den resulterende proxy på den HTTP-klient, der sender anmodningen.

For en allerede parset Uri eksponerer IdnHost sin IDNA-kompatible værtsnavnrepræsentation. Gennemgå det oprindelige endpoint i stedet for gentagne gange at kode en allerede kodet label.

Skeln mellem proxyens værtsnavn og destinationens værtsnavn i en opløsningsfejl. Konvertering af det ene retter ikke en tastefejl eller en manglende DNS-post på det andet. Behold også det tilsigtede værtsnavn til certifikatidentitet; udskiftning med en vilkårlig IP-adresse ændrer en anden del af forbindelsen.

Relaterede artikler