Problem: Warum stellt mein Go-HTTP-Client mehrere Verbindungen zum selben Host her, obwohl er den verwendet? Option „KeepAlives deaktivieren“ auf „false“ setzen?
Der Go-HTTP-Client ist so konzipiert, dass er Verbindungen standardmäßig wiederverwendet. Es gibt jedoch bestimmte Bedingungen, die dies verhindern können.
Diagnose:
Im bereitgestellten Code ist die Methode http.Transport.RoundTrip() nicht vorhanden Unmittelbar gefolgt von einem Aufruf von resp.Close(). Dies kann dazu führen, dass die Verbindung sofort nach dem Senden der Anfrage geschlossen wird, sodass sie nicht für nachfolgende Anfragen wiederverwendet werden kann.
Lösung:
Um die Wiederverwendung der HTTP-Verbindung sicherzustellen, Es sind zwei Schritte erforderlich:
Code Snippet:
<code class="go">res, _ := client.Do(req) io.Copy(ioutil.Discard, res.Body) res.Body.Close()</code>
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWarum erstelle ich in meinem Go-HTTP-Client immer noch mehrere Verbindungen, auch wenn „DisableKeepAlives' auf „Falsch' gesetzt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!