http.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package webutils
  2. import (
  3. "errors"
  4. "io"
  5. "net/http"
  6. "strings"
  7. "time"
  8. "github.com/sirupsen/logrus"
  9. )
  10. func Get(reqUrl string, timeout time.Duration) ([]byte, error) {
  11. req, err := http.NewRequest(http.MethodGet, reqUrl, nil)
  12. if err != nil {
  13. logrus.Error(err)
  14. return nil, err
  15. }
  16. cli := http.Client{
  17. Timeout: timeout,
  18. }
  19. resp, err := cli.Do(req)
  20. if err != nil {
  21. logrus.Error(err)
  22. return nil, err
  23. }
  24. defer resp.Body.Close()
  25. b, err := io.ReadAll(resp.Body)
  26. if err != nil {
  27. logrus.Error(err)
  28. return nil, err
  29. }
  30. return b, nil
  31. }
  32. func Post(reqUrl string, payload string, timeout time.Duration) ([]byte, error) {
  33. req, err := http.NewRequest(http.MethodPost, reqUrl, strings.NewReader(payload))
  34. if err != nil {
  35. logrus.Error(err)
  36. return nil, err
  37. }
  38. cli := http.Client{
  39. Timeout: timeout,
  40. }
  41. resp, err := cli.Do(req)
  42. if err != nil {
  43. logrus.Error(err)
  44. return nil, err
  45. }
  46. if resp.StatusCode != http.StatusOK {
  47. logrus.Error("状态码错误:", resp)
  48. return nil, errors.New("状态码错误")
  49. }
  50. defer resp.Body.Close()
  51. b, err := io.ReadAll(resp.Body)
  52. if err != nil {
  53. logrus.Error(err)
  54. return nil, err
  55. }
  56. return b, nil
  57. }