Đặt tiêu đề CONNECT của Go trên Transport
Gửi một tiêu đề được yêu cầu tới proxy HTTP trong CONNECT mà không đặt nó lên yêu cầu đích.
Tiêu đề được thêm vào http.Request.Header mô tả yêu cầu đích. Khi HTTPS dùng proxy HTTP, transport thực hiện CONNECT trước. Các tiêu đề của yêu cầu đích không phải là API cấu hình chung cho trao đổi trước đó.
Đối với một tiêu đề tĩnh mà proxy của bạn yêu cầu, hãy cấu hình ProxyConnectHeader của transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Ở đây proxyURL là URL điểm cuối đã được phân tích cú pháp. Tiêu đề chỉ mang tính minh họa và chỉ hữu ích khi nhà vận hành proxy định nghĩa trường như vậy.
Đối với giá trị được chọn theo từng proxy hoặc đích, hãy dùng GetProxyConnectHeader. Hàm gọi lại được ghi chú nhận URL proxy và mục tiêu CONNECT. Khi hàm này khác nil, trường tĩnh ProxyConnectHeader bị bỏ qua.
Giữ giá trị trong phạm vi dự định. Dấu tài khoản chỉ dành cho proxy thuộc về trao đổi với proxy; giá trị ủy quyền của trang web thuộc về yêu cầu đích. Nếu hàm gọi lại không thể tạo ra giá trị bắt tay cần thiết, hãy trả về lỗi của nó thay vì âm thầm gửi một yêu cầu được cấu hình khác.
Các cài đặt này tùy biến cách xử lý CONNECT. Chúng không phát minh giao thức xác thực riêng hay thay đổi chính sách truy cập của dịch vụ proxy.