Un nom d'hôte de proxy peut contenir des caractères internationaux dans sa forme affichée. Un client ou un résolveur qui attend la forme IDNA ASCII a besoin que ce nom d'hôte soit converti, et non d'une copie arbitraire échappée en pourcentage de l'URL entière.

Dans PowerShell, .NET expose la conversion directement :

$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 n'est que le nom de domaine. Le port et le schéma restent séparés. Utilisez le proxy obtenu sur le client HTTP qui effectue la requête.

Pour un Uri déjà analysé, IdnHost expose sa représentation de nom d'hôte compatible IDNA. Examinez le point de terminaison d'origine plutôt que de réencoder à plusieurs reprises une étiquette déjà encodée.

Distinguez le nom d'hôte du proxy de celui de la destination dans une erreur de résolution. Convertir l'un ne corrige pas une faute de frappe ni un enregistrement DNS manquant sur l'autre. Conservez aussi le nom d'hôte prévu pour l'identité du certificat ; le remplacer par une adresse IP arbitraire modifie une autre partie de la connexion.

Articles similaires