package netutil import ( "net" "net/http" "time" ) func NewSafeHTTPClient(timeout time.Duration) *http.Client { safeDialer := &SafeDialer{ Dialer: net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }, } transport := &http.Transport{ DialContext: safeDialer.DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } return &http.Client{ Timeout: timeout, Transport: transport, } }