שימו את כותרות ה-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. פונקציית הקריאה החוזרת המתועדת מקבלת את כתובת הפרוקסי ואת יעד ה-CONNECT. כאשר פונקציה זו אינה nil, השדה הקבוע ProxyConnectHeader מתעלם.
שמרו על הערכים בתחום המיועד. סימן חשבון המיועד לפרוקסי בלבד שייך לחילוף עם הפרוקסי; ערך הרשאה של אתר שייך לבקשת היעד. אם פונקציית קריאה חוזרת אינה יכולה להפיק את ערך לחיצת היד הנדרש, החזירו את השגיאה שלה במקום לשלוח בשקט בקשה בתצורה אחרת.
הגדרות אלה מתאימות את הטיפול ב-CONNECT. הן אינן ממציאות פרוטוקול אימות מותאם אישית ואינן משנות את מדיניות הגישה של שירות הפרוקסי.