يضبط DefaultTransport القياسي في Go الحقل Proxy على ProxyFromEnvironment. أما &http.Transport{} المنشأ بشكل منفصل فلديه دالة Proxy فارغة، وهذا لا يختار أي وكيل.

قد يظهر هذا الفرق بعد إضافة نقل فقط لتغيير مهلة. ما دام الافتراضي القياسي مثبتًا، استنسخه وغيّر الحقل الذي تحتاجه:

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second

client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

يحافظ الاستنساخ على اختيار وكيل البيئة وعلى إعدادات النقل الافتراضية الأخرى. يفترض تحويل النوع أن التطبيق لم يستبدل DefaultTransport بغير RoundTripper آخر.

بالنسبة إلى نقل بُني من الصفر عن قصد، عيّن Proxy: http.ProxyFromEnvironment صراحةً عندما تكون هذه سياسة التوجيه. وتعبّر دالة ProxyURL الصريحة عن سياسة مختلفة: وسيط واحد مختار.

اضبط النقل قبل أن تستخدمه الطلبات المتزامنة، ثم أعد استخدامه لحمل العمل. إن تغيير كائن افتراضي مشترك قد يؤثر في عملاء غير مرتبطين.

إعدادات TLS المخصصة منفصلة. تعطيل التحقق من الشهادة ليس مطلوبًا للحفاظ على اكتشاف الوكيل، وسيغيّر أمان كل طلب HTTPS مطابق.

مقالات ذات صلة