httpclient.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package tool
  2. import (
  3. "io"
  4. "net/http"
  5. "time"
  6. )
  7. const UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
  8. type HttpClient struct {
  9. *http.Client
  10. }
  11. var httpClient *HttpClient
  12. func init() {
  13. httpClient = &HttpClient{http.DefaultClient}
  14. httpClient.Timeout = time.Second * 10
  15. }
  16. func GetHttpClient() *HttpClient {
  17. c := *httpClient
  18. return &c
  19. }
  20. func (c *HttpClient) Get(url string) (resp *http.Response, err error) {
  21. req, err := http.NewRequest(http.MethodGet, url, nil)
  22. if err != nil {
  23. return nil, err
  24. }
  25. req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
  26. req.Header.Set("User-Agent", UserAgent)
  27. return c.Do(req)
  28. }
  29. func (c *HttpClient) Post(url string, body io.Reader) (resp *http.Response, err error) {
  30. req, err := http.NewRequest(http.MethodPost, url, body)
  31. if err != nil {
  32. return nil, err
  33. }
  34. req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
  35. req.Header.Set("User-Agent", UserAgent)
  36. return c.Do(req)
  37. }