วางเฮดเดอร์ CONNECT ของ Go บน Transport
ส่งเฮดเดอร์ที่จำเป็นไปยังพร็อกซิ HTTP ระหว่าง CONNECT โดยไม่ใส่ไว้บนคำขอปลายทาง
เฮดเดอร์ที่เพิ่มลงใน http.Request.Header อธิบายคำขอปลายทาง เมื่อ HTTPS ใช้พร็อกซิ HTTP, transport จะทำ CONNECT ก่อน เฮดเดอร์ของคำขอปลายทางไม่ใช่ API การกำหนดค่าทั่วไปสำหรับการแลกเปลี่ยนก่อนหน้านั้น
สำหรับเฮดเดอร์คงที่ที่พร็อกซิของคุณต้องการ ให้กำหนดค่า ProxyConnectHeader ของ transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}ในที่นี้ proxyURL คือ URL ปลายทางที่แยกวิเคราะห์แล้ว เฮดเดอร์นี้เป็นเพียงตัวอย่างและมีประโยชน์เมื่อผู้ให้บริการพร็อกซิกำหนดฟิลด์เช่นนี้เท่านั้น
สำหรับค่าที่เลือกตามพร็อกซิหรือปลายทาง ให้ใช้ GetProxyConnectHeader คอลแบ็กที่จัดทำเอกสารไว้จะได้รับ URL ของพร็อกซิและเป้าหมาย CONNECT เมื่อคอลแบ็กนี้ไม่ใช่ nil ฟิลด์คงที่ ProxyConnectHeader จะถูกเพิกเฉย
เก็บค่าไว้ในขอบเขตที่ตั้งใจไว้ เครื่องหมายบัญชีที่ใช้เฉพาะพร็อกซิเป็นของการแลกเปลี่ยนกับพร็อกซิ ส่วนค่าได้รับอนุญาตของเว็บไซต์เป็นของคำขอปลายทาง หากคอลแบ็กไม่สามารถสร้างค่า handshake ที่จำเป็นได้ ให้ส่งคืนข้อผิดพลาดแทนการส่งคำขอที่กำหนดค่าไว้ต่างออกไปอย่างเงียบ ๆ
การตั้งค่าเหล่านี้ปรับแต่งการจัดการ CONNECT ไม่ได้คิดค้นโปรโตคอลการรับรองความถูกต้องขึ้นเอง หรือเปลี่ยนแปลงนโยบายการเข้าถึงของบริการพร็อกซิ