request.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package utils
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io"
  6. "net/http"
  7. "net/url"
  8. )
  9. // Get 发送GET请求
  10. func Get(url string, params url.Values, headers map[string]string) ([]byte, error) {
  11. // requestURL := fmt.Sprintf("%s?%s", url, params.Encode())
  12. // req, err := http.NewRequest("GET", requestURL, nil)
  13. // if err != nil {
  14. // return nil, err
  15. // }
  16. // for key, value := range headers {
  17. // req.Header.Set(key, value)
  18. // }
  19. // resp, err := http.DefaultClient.Do(req)
  20. // if err != nil {
  21. // return nil, err
  22. // }
  23. // defer resp.Body.Close()
  24. // return io.ReadAll(resp.Body)
  25. return nil, nil
  26. }
  27. // Post 发送POST请求, body体为json格式
  28. func Post(url string, params []byte, headers map[string]string) ([]byte, error) {
  29. req, err := http.NewRequest("POST", url, bytes.NewBuffer(params))
  30. if err != nil {
  31. fmt.Println("Post NewRequest error:", err.Error())
  32. return nil, err
  33. }
  34. req.Header.Set("Content-Type", "application/json")
  35. for key, value := range headers {
  36. req.Header.Set(key, value)
  37. }
  38. resp, err := http.DefaultClient.Do(req)
  39. if err != nil {
  40. fmt.Println("Post Do error:", err.Error())
  41. return nil, err
  42. }
  43. if resp.StatusCode >= 400 {
  44. return nil, fmt.Errorf("Post request error: %s", resp.Status)
  45. }
  46. defer resp.Body.Close()
  47. return io.ReadAll(resp.Body)
  48. }
  49. // Post 发送POST请求, url.Values处理版本
  50. // func Post(url string, params url.Values, headers map[string]string) ([]byte, error) {
  51. // body, _ := json.Marshal(params)
  52. // req, err := http.NewRequest("POST", url, bytes.NewBuffer(body))
  53. // if err != nil {
  54. // return nil, err
  55. // }
  56. // req.Header.Set("Content-Type", "application/json")
  57. // for key, value := range headers {
  58. // req.Header.Set(key, value)
  59. // }
  60. // resp, err := http.DefaultClient.Do(req)
  61. // if err != nil {
  62. // return nil, err
  63. // }
  64. // defer resp.Body.Close()
  65. // return io.ReadAll(resp.Body)
  66. // }