DefaultTransport piawai Go menetapkan Proxy kepada ProxyFromEnvironment. &http.Transport{} yang dibina secara berasingan mempunyai fungsi Proxy nil, jadi ia tidak memilih sebarang proksi.

Perbezaan itu boleh muncul selepas menambah transport hanya untuk menukar had masa. Selagi lalai piawai masih dipasang, klonkan dan tukar medan yang anda perlukan:

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

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

Klon mengekalkan pemilihan proksi persekitaran dan tetapan transport lalai yang lain. Penegasan jenis menganggap aplikasi belum menggantikan DefaultTransport dengan RoundTripper lain.

Untuk transport yang sengaja dibina dari awal, tetapkan Proxy: http.ProxyFromEnvironment secara eksplisit apabila itulah dasar penghalaannya. Fungsi ProxyURL eksplisit menyatakan dasar yang berbeza: satu perantara yang dipilih.

Konfigurasikan transport sebelum permintaan serentak menggunakannya, kemudian gunakan semula untuk beban kerja. Mengubah objek lalai yang dikongsi boleh menjejaskan klien yang tidak berkaitan.

Tetapan TLS tersuai adalah berasingan. Melumpuhkan pengesahan sijil tidak diperlukan untuk mengekalkan penemuan proksi, dan ia akan mengubah keselamatan setiap permintaan HTTPS yang sepadan.

Artikel berkaitan