Пераўтварыце імя хоста проксі ў IDNA ASCII у PowerShell
Пераўтварыце інтэрнацыянальнае імя дамена ў форму IDNA ASCII, калі спажывец канчатковага пункта проксі не можа развязаць Unicode-імя хоста.
Імя хоста проксі можа змяшчаць міжнародныя сімвалы ў адлюстраванай форме. Кліент або рэзалвер, які чакае форму 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-адрасам змяняе іншую частку злучэння.