httputil.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package utils
  2. import (
  3. "bytes"
  4. "io/ioutil"
  5. "net/http"
  6. "runtime"
  7. "time"
  8. )
  9. var (
  10. defaultClient = &http.Client{
  11. Timeout: 60 * time.Second,
  12. Transport: &http.Transport{
  13. MaxConnsPerHost: runtime.NumCPU(),
  14. MaxIdleConnsPerHost: runtime.NumCPU(),
  15. IdleConnTimeout: 60 * time.Second,
  16. },
  17. }
  18. )
  19. func HTTPConnect(method, url, token string, data []byte) ([]byte, error) {
  20. req, err := http.NewRequest(method, url, bytes.NewBuffer(data))
  21. if err != nil {
  22. // log.Errorf("create request error:%s.", err)
  23. return nil, err
  24. }
  25. req.Header.Set("Content-Type", "application/json")
  26. req.Header.Add("token", token)
  27. var resp *http.Response
  28. resp, err = defaultClient.Do(req)
  29. //if strings.HasPrefix(url, "https") {
  30. // resp, err = localClient.Do(req)
  31. //} else {
  32. // resp, err = defaultClient.Do(req)
  33. //}
  34. if err != nil {
  35. // log.Error(err)
  36. return nil, err
  37. }
  38. defer resp.Body.Close()
  39. result, err := ioutil.ReadAll(resp.Body)
  40. if err != nil {
  41. // log.Errorf("http read body error:%s", err)
  42. return nil, err
  43. }
  44. // fmt.Println(result)
  45. return result, nil
  46. }