Go च्या HTTP ट्रान्सपोर्टला सानुकूलित करताना ProxyFromEnvironment ठेवा
ट्रान्सपोर्ट टाइमआउट किंवा कनेक्शन पूल सानुकूलित करताना Go ची पर्यावरण प्रॉक्सी निवड टिकवून ठेवा, डीफॉल्टला शून्य मूल्याच्या Proxy फील्डने बदलण्याऐवजी.
Go चे मानक DefaultTransport, Proxy ला ProxyFromEnvironment वर सेट करते. स्वतंत्रपणे तयार केलेल्या &http.Transport{} मध्ये Proxy फंक्शन nil असते, जे कोणतीही प्रॉक्सी निवडत नाही.
फक्त टाइमआउट बदलण्यासाठी ट्रान्सपोर्ट जोडल्यानंतर हा फरक दिसू शकतो. मानक डीफॉल्ट अजूनही स्थापित असल्यास ते क्लोन करा आणि आवश्यक फील्ड बदला:
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 विनंतीची सुरक्षा बदलेल.