Tên máy chủ proxy có thể chứa các ký tự quốc tế ở dạng hiển thị. Một máy khách hoặc trình phân giải mong đợi dạng IDNA ASCII cần tên máy chủ đó được chuyển đổi, chứ không phải một bản sao thoát phần trăm tùy tiện của toàn bộ URL.

Trong PowerShell, .NET hiển thị trực tiếp việc chuyển đổi:

$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 chỉ là tên miền. Cổng và lược đồ vẫn tách biệt. Dùng proxy thu được trên máy khách HTTP thực hiện yêu cầu.

Đối với một Uri đã được phân tích, IdnHost hiển thị biểu diễn tên máy chủ tương thích IDNA của nó. Hãy xem lại điểm cuối gốc thay vì mã hóa lặp lại một nhãn đã được mã hóa.

Trong lỗi phân giải, hãy phân biệt tên máy chủ của proxy với tên máy chủ của đích. Việc chuyển đổi cái này không sửa lỗi chính tả hoặc bản ghi DNS bị thiếu ở cái kia. Cũng giữ tên máy chủ dự định cho nhận dạng chứng chỉ; thay nó bằng một địa chỉ IP tùy tiện sẽ thay đổi một phần khác của kết nối.

Bài viết liên quan