Go کے HTTP ٹرانسپورٹ کو حسب ضرورت بناتے وقت ProxyFromEnvironment برقرار رکھیں
ٹرانسپورٹ کے ٹائم آؤٹ یا کنکشن پول حسب ضرورت بناتے وقت Go کا ماحولیاتی پراکسی انتخاب برقرار رکھیں، بجائے اس کے کہ طے شدہ قدر کو خالی Proxy فیلڈ سے بدل دیں۔
Go کا معیاری DefaultTransport، 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 درخواست کی سلامتی بدل دے گا۔