Pertahankan ProxyFromEnvironment Saat Menyesuaikan Transport HTTP Go
Pertahankan pemilihan proxy lingkungan Go saat menyesuaikan batas waktu atau kumpulan koneksi transport, alih-alih mengganti bawaan dengan bidang Proxy bernilai nol.
DefaultTransport standar Go menetapkan Proxy ke ProxyFromEnvironment. &http.Transport{} yang dibuat terpisah memiliki fungsi Proxy nil, sehingga tidak memilih proxy apa pun.
Perbedaan itu bisa muncul setelah menambahkan transport hanya untuk mengubah batas waktu. Selama bawaan standar masih terpasang, klonlah dan ubah bidang yang Anda perlukan:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klon mempertahankan pemilihan proxy lingkungan dan pengaturan transport bawaan lainnya. Asersi tipe mengasumsikan aplikasi belum mengganti DefaultTransport dengan RoundTripper lain.
Untuk transport yang sengaja dibangun dari nol, tetapkan Proxy: http.ProxyFromEnvironment secara eksplisit bila itulah kebijakan peruteannya. Fungsi ProxyURL eksplisit menyatakan kebijakan berbeda: satu perantara yang dipilih.
Konfigurasikan transport sebelum permintaan bersamaan memakainya, lalu gunakan kembali untuk beban kerja. Mengubah objek bawaan bersama dapat memengaruhi klien yang tidak terkait.
Pengaturan TLS khusus terpisah. Menonaktifkan verifikasi sertifikat tidak diperlukan untuk mempertahankan penemuan proxy, dan itu akan mengubah keamanan setiap permintaan HTTPS yang cocok.