關閉 Go http.Client 的連線池
要停用 Go 的 http.Client 的連線池,您可以修改其傳輸設定。主要有兩種方法:
方法 1:DisableKeepAlive
將 Transport.DisableKeepAlives 設為 true 將阻止傳輸重複使用現有連接。但是,這可能會導致在請求中添加 Connection: close 標頭,這在所有測試場景中可能並不理想。
方法 2:設定 MaxIdleConnsPerHost
將 Transport.MaxIdleConnsPerHost 設定為負值(例如 -1)也會有效停用連線池。與DisableKeepAlives不同,此方法不會影響請求標頭。
範例程式碼
以下是使用DisableKeepAlive停用連線池的範例:
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
以下是使用MaxIdleConnsPersPerost 的範例:
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}要注意的是,將Dialer.KeepAlive 設為-1 不會停用連線池。此設定僅影響活動連線的保持活動行為,而不影響新連線的建立。
以上是如何停用 Go 的 http.Client 連線池?的詳細內容。更多資訊請關注PHP中文網其他相關文章!