Um nome de host de proxy pode conter caracteres internacionais em sua forma exibida. Um cliente ou resolvedor que espera a forma IDNA ASCII precisa desse nome de host convertido, não de uma cópia arbitrária com escape percentual de todo o URL.

No PowerShell, o .NET expõe a conversão diretamente:

$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 é apenas o nome de domínio. A porta e o esquema permanecem separados. Use o proxy resultante no cliente HTTP que faz a solicitação.

Para um Uri já analisado, o IdnHost expõe sua representação de nome de host compatível com IDNA. Revise o endpoint original em vez de codificar repetidamente um rótulo já codificado.

Distinga o nome de host do proxy do nome de host do destino em um erro de resolução. Converter um não corrige um erro de digitação ou registro DNS ausente no outro. Mantenha também o nome de host pretendido para a identidade do certificado; substituí-lo por um endereço IP arbitrário altera outra parte da conexão.

Artigos relacionados