Ім'я хоста проксі може містити міжнародні символи у відображуваній формі. Клієнту або розв'язувачу, який очікує форму IDNA ASCII, потрібне перетворене ім'я хоста, а не довільна копія всього URL з відсотковим екрануванням.

У PowerShell .NET надає перетворення безпосередньо:

$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 — це лише доменне ім'я. Порт і схема залишаються окремо. Використовуйте отриманий проксі в HTTP-клієнті, який виконує запит.

Для вже розібраного Uri IdnHost надає сумісне з IDNA подання імені хоста. Перегляньте початкову кінцеву точку замість багаторазового кодування вже закодованої мітки.

У помилці розв'язання розрізняйте ім'я хоста проксі та ім'я хоста призначення. Перетворення одного не виправляє друкарську помилку або відсутній запис DNS в іншому. Зберігайте передбачуване ім'я хоста й для ідентичності сертифіката; заміна його довільною IP-адресою змінює іншу частину з'єднання.

Схожі статті