httpclient_led.go 711 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package clt_client
  2. import (
  3. "net"
  4. "net/http"
  5. "sync"
  6. "time"
  7. )
  8. var once sync.Once
  9. var CltClient cltclient
  10. func GetClient() cltclient {
  11. once.Do(func() {
  12. CltClient = cltclient{
  13. HttpClient: http.Client{
  14. Timeout: 30 * time.Second,
  15. Transport: &http.Transport{
  16. DialContext: (&net.Dialer{
  17. Timeout: 3 * time.Second,
  18. KeepAlive: 30 * time.Second,
  19. }).DialContext,
  20. MaxIdleConns: 100,
  21. MaxIdleConnsPerHost: 10,
  22. IdleConnTimeout: 90 * time.Second,
  23. TLSHandshakeTimeout: 5 * time.Second,
  24. ExpectContinueTimeout: 1 * time.Second,
  25. },
  26. },
  27. }
  28. CltClient.LoadVsn()
  29. })
  30. return CltClient
  31. }
  32. type cltclient struct {
  33. HttpClient http.Client
  34. }