問題: 為什麼我的Go HTTP 用戶端會建立到同一主機的多頭主機個連接,儘管使用DisableKeepAlives 選項為false?
Go HTTP 用戶端預設設計為重複使用連線。但是,有某些條件可以阻止它這樣做。
診斷:
在提供的程式碼中,http.Transport.RoundTrip() 方法不是緊接著呼叫 resp.Close()。這可能會導致連線在請求發送後立即關閉,無法將其重新用於後續請求。
解決方案:
為了確保HTTP 連線重複使用,需要兩個步驟:
程式碼片段:
<code class="go">res, _ := client.Do(req) io.Copy(ioutil.Discard, res.Body) res.Body.Close()</code>
程式碼片段:
以上是即使“DisableKeepAlives”設定為 False,為什麼我仍然在 Go HTTP 用戶端中建立多個連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!