github.com/aavshr/aws-sdk-go@v1.41.3/example/aws/request/httptrace/client.go (about)

     1  package main
     2  
     3  import (
     4  	"net"
     5  	"net/http"
     6  	"time"
     7  )
     8  
     9  // NewClient creates a new HTTP Client using the ClientConfig values.
    10  func NewClient(cfg ClientConfig) *http.Client {
    11  	tr := &http.Transport{
    12  		Proxy: http.ProxyFromEnvironment,
    13  		DialContext: (&net.Dialer{
    14  			Timeout:   cfg.Timeouts.Connect,
    15  			KeepAlive: 30 * time.Second,
    16  			DualStack: true,
    17  		}).DialContext,
    18  		MaxIdleConns:    100,
    19  		IdleConnTimeout: cfg.Timeouts.IdleConnection,
    20  
    21  		DisableKeepAlives:     !cfg.KeepAlive,
    22  		TLSHandshakeTimeout:   cfg.Timeouts.TLSHandshake,
    23  		ExpectContinueTimeout: cfg.Timeouts.ExpectContinue,
    24  		ResponseHeaderTimeout: cfg.Timeouts.ResponseHeader,
    25  	}
    26  
    27  	return &http.Client{
    28  		Transport: tr,
    29  	}
    30  }