Go se standaard DefaultTransport stel Proxy op ProxyFromEnvironment. 'n Apart geboude &http.Transport{} het 'n nul-Proxy-funksie, wat geen proksi kies nie.

Daardie verskil kan ontstaan nadat 'n transport bygevoeg is net om 'n tydperk te verander. Met die standaardverstek nog geïnstalleer, kloon dit en verander die veld wat jy nodig het:

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

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

Die kloon behou omgewingsproksi-keuse en die ander verstek transport-instellings. Die tipe-assertasie aanvaar dat die toepassing nie DefaultTransport met 'n ander RoundTripper vervang het nie.

Vir 'n transport wat doelbewus van nuuts af gebou is, stel Proxy: http.ProxyFromEnvironment eksplisiet wanneer dit die roeteringsbeleid is. 'n Eksplisiete ProxyURL-funksie verteenwoordig 'n ander beleid: een gekose tussenganger.

Konfigureer die transport voordat gelyktydige versoeke dit gebruik, en hergebruik dit dan vir die werklading. Om 'n gedeelde verstekobjek te verander, kan onverwante kliënte raak.

Pasgemaakte TLS-instellings is apart. Om sertifikaatverifikasie te deaktiveer is nie nodig om proksi-ontdekking te behou nie, en dit sou die sekuriteit van elke ooreenstemmende HTTPS-versoek verander.

Verwante artikels