Go'nun standart DefaultTransport'u Proxy alanını ProxyFromEnvironment olarak ayarlar. Ayrı olarak oluşturulan &http.Transport{} ise nil Proxy işlevine sahiptir ve hiçbir proxy seçmez.

Bu fark, yalnızca bir zaman aşımını değiştirmek için taşıma eklendikten sonra ortaya çıkabilir. Standart varsayılan hâlâ kuruluyken onu klonlayın ve ihtiyacınız olan alanı değiştirin:

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

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

Klon, ortam proxy seçimini ve diğer varsayılan taşıma ayarlarını korur. Tür doğrulaması, uygulamanın DefaultTransport'u başka bir RoundTripper ile değiştirmediğini varsayar.

Bilinçli olarak sıfırdan oluşturulan bir taşıma için, yönlendirme politikası buysa Proxy: http.ProxyFromEnvironment ayarını açıkça yapın. Açık bir ProxyURL işlevi farklı bir politikayı ifade eder: seçilmiş tek bir aracı.

Taşımayı eşzamanlı istekler kullanmadan önce yapılandırın, ardından iş yükü için yeniden kullanın. Paylaşılan bir varsayılan nesneyi değiştirmek ilgisiz istemcileri etkileyebilir.

Özel TLS ayarları ayrıdır. Proxy keşfini korumak için sertifika doğrulamasını devre dışı bırakmak gerekmez ve bu, eşleşen her HTTPS isteğinin güvenliğini değiştirir.

İlgili makaleler