优化httpclient模块

This commit is contained in:
boyce
2024-03-19 08:54:48 +08:00
parent 4898116698
commit 9689b7b5fe

View File

@@ -43,7 +43,15 @@ func (slf *SyncHttpResponse) Get(timeoutMs int) HttpResponse {
} }
} }
func (m *HttpClientModule) Init(maxpool int, proxyUrl string) { func (m *HttpClientModule) InitHttpClient(transport http.RoundTripper,timeout time.Duration,checkRedirect func(req *http.Request, via []*http.Request) error){
m.client = &http.Client{
Transport: transport,
Timeout: timeout,
CheckRedirect: checkRedirect,
}
}
func (m *HttpClientModule) Init(proxyUrl string, maxpool int, dialTimeout time.Duration,dialKeepAlive time.Duration,idleConnTimeout time.Duration,timeout time.Duration) {
type ProxyFun func(_ *http.Request) (*url.URL, error) type ProxyFun func(_ *http.Request) (*url.URL, error)
var proxyFun ProxyFun var proxyFun ProxyFun
if proxyUrl != "" { if proxyUrl != "" {
@@ -55,16 +63,16 @@ func (m *HttpClientModule) Init(maxpool int, proxyUrl string) {
m.client = &http.Client{ m.client = &http.Client{
Transport: &http.Transport{ Transport: &http.Transport{
DialContext: (&net.Dialer{ DialContext: (&net.Dialer{
Timeout: 5 * time.Second, Timeout: dialTimeout,
KeepAlive: 30 * time.Second, KeepAlive: dialKeepAlive,
}).DialContext, }).DialContext,
MaxIdleConns: maxpool, MaxIdleConns: maxpool,
MaxIdleConnsPerHost: maxpool, MaxIdleConnsPerHost: maxpool,
IdleConnTimeout: 60 * time.Second, IdleConnTimeout: idleConnTimeout,
Proxy: proxyFun, Proxy: proxyFun,
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}, },
Timeout: 5 * time.Second, Timeout: timeout,
} }
} }