Názov hostiteľa proxy môže v zobrazenej podobe obsahovať medzinárodné znaky. Klient alebo resolver, ktorý očakáva podobu IDNA ASCII, potrebuje tento názov hostiteľa prevedený, nie ľubovoľnú percentami escapovanú kópiu celého URL.

V PowerShelli .NET sprístupňuje prevod priamo:

$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 len názov domény. Port a schéma zostávajú oddelené. Výsledný proxy použite v klientovi HTTP, ktorý požiadavku odosiela.

Pre už analyzovaný Uri sprístupňuje IdnHost svoju reprezentáciu názvu hostiteľa kompatibilnú s IDNA. Skontrolujte pôvodný koncový bod namiesto opakovaného kódovania už zakódovanej značky.

V chybe prekladu rozlišujte názov hostiteľa proxy od názvu hostiteľa cieľa. Prevod jedného neopraví preklep ani chýbajúci záznam DNS na druhom. Zachovajte zamýšľaný názov hostiteľa aj pre identitu certifikátu; nahradenie ľubovoľnou IP adresou mení inú časť spojenia.

Súvisiace články