Tarpinio serverio prieglobos vardas rodomoje formoje gali turėti tarptautinių simbolių. Klientui ar sprendėjui, kuris tikisi IDNA ASCII formos, reikia konvertuoto prieglobos vardo, o ne savavališkos procentais užkoduotos viso URL kopijos.

PowerShell .NET pateikia konvertavimą tiesiogiai:

$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 yra tik domeno vardas. Prievadas ir schema lieka atskirai. Naudokite gautą tarpinį serverį HTTP kliente, kuris atlieka užklausą.

Jau išanalizuotam Uri IdnHost pateikia su IDNA suderinamą prieglobos vardo atvaizdą. Peržiūrėkite pradinį galinį tašką, o ne pakartotinai koduokite jau užkoduotą žymę.

Sprendimo klaidoje atskirkite tarpinio serverio prieglobos vardą nuo paskirties prieglobos vardo. Vieno konvertavimas neištaiso kito rašybos klaidos ar trūkstamo DNS įrašo. Išsaugokite numatytą prieglobos vardą ir sertifikato tapatybei; pakeitimas savavališku IP adresu pakeičia kitą ryšio dalį.

Susiję straipsniai