package httpclientmdl import ( "net/http" "time" "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/constantmdl" ) // GetHTTPClient This method will return the httpClient object with preconfigured settings func GetHTTPClient() *http.Client { transport := &http.Transport{ MaxIdleConns: constantmdl.MAXIDLECONNS, MaxIdleConnsPerHost: constantmdl.MAXIDLECONNSPERHOST, IdleConnTimeout: constantmdl.IDLECONNTIMEOUT, } httpClient := &http.Client{ Transport: transport, } return httpClient } type HTTPTransport struct { MaxIdleConns int MaxIdleConnsPerHost int IdleConnTimeout time.Duration } // GetHTTPClient This method will return the httpClient object with preconfigured settings func GetHTTPClientWithConfig(httpTransport HTTPTransport) *http.Client { if httpTransport.MaxIdleConns == 0 { httpTransport.MaxIdleConns = constantmdl.MAXIDLECONNS } if httpTransport.MaxIdleConnsPerHost == 0 { httpTransport.MaxIdleConnsPerHost = constantmdl.MAXIDLECONNSPERHOST } if httpTransport.IdleConnTimeout == 0 { httpTransport.IdleConnTimeout = constantmdl.IDLECONNTIMEOUT } transport := &http.Transport{ MaxIdleConns: httpTransport.MaxIdleConns, MaxIdleConnsPerHost: httpTransport.MaxIdleConnsPerHost, IdleConnTimeout: httpTransport.IdleConnTimeout, } httpClient := &http.Client{ Transport: transport, } return httpClient }