Název hostitele proxy může v zobrazené podobě obsahovat mezinárodní znaky. Klient nebo resolver, který očekává podobu IDNA ASCII, potřebuje tento název hostitele převedený, nikoli libovolnou procenty escapovanou kopii celého URL.

V PowerShellu .NET převod vystavuje přímo:

$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 je pouze název domény. Port a schéma zůstávají oddělené. Výsledný proxy použijte v klientu HTTP, který požadavek odesílá.

U již analyzovaného Uri vystavuje IdnHost svou reprezentaci názvu hostitele kompatibilní s IDNA. Zkontrolujte původní koncový bod, místo abyste opakovaně kódovali již zakódovaný popisek.

V chybě překladu rozlišujte název hostitele proxy od názvu hostitele cíle. Převod jednoho neopraví překlep ani chybějící záznam DNS u druhého. Zachovejte zamýšlený název hostitele i pro identitu certifikátu; nahrazení libovolnou IP adresou mění jinou část spojení.

Související články