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 अनुरोध की सुरक्षा बदल देगा।

संबंधित लेख