ضع رؤوس 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.
أبقِ القيم في النطاق المقصود. علامة الحساب الخاصة بالوكيل فقط تنتمي إلى تبادل الوكيل؛ وقيمة تفويض الموقع تنتمي إلى طلب الوجهة. إذا تعذّر على دالة الاستدعاء إنتاج قيمة المصافحة المطلوبة، فأعِد خطأها بدلًا من إرسال طلب مُكوَّن بشكل مختلف بصمت.
تخصّص هذه الإعدادات معالجة CONNECT. وهي لا تبتكر بروتوكول مصادقة مخصصًا ولا تغيّر سياسة الوصول الخاصة بخدمة الوكيل.