actionService.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package service
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "io"
  7. "net/http"
  8. "net/url"
  9. "time"
  10. )
  11. func CurPost(requestUrl string, requestBody interface{}, headerMap map[string]string) (string, error) {
  12. //转换json
  13. jsonBytes, err := json.Marshal(requestBody)
  14. if err != nil {
  15. return "", err
  16. }
  17. //创建请求
  18. req, err := http.NewRequest("POST", requestUrl, bytes.NewReader(jsonBytes))
  19. if err != nil {
  20. return "", err
  21. }
  22. //设置请求头
  23. req.Header.Set("Content-Type", "application/json;charset=UTF-8")
  24. for k, v := range headerMap {
  25. //req.Header.Set("Accept-Encoding", "gzip, deflate, br")
  26. req.Header.Set(k, v)
  27. }
  28. //发送请求
  29. clt := http.Client{Timeout: 30 * time.Second}
  30. res, err := clt.Do(req)
  31. if err != nil {
  32. return "", err
  33. }
  34. //获取结果
  35. body, err := io.ReadAll(res.Body)
  36. data := string(body)
  37. return data, err
  38. }
  39. func CurlGet(url string, values url.Values, header http.Header) (string, error) {
  40. req, reqErr := http.NewRequest(http.MethodGet, url, nil)
  41. if reqErr != nil {
  42. return "", reqErr
  43. }
  44. if header != nil {
  45. req.Header = header
  46. }
  47. if values != nil {
  48. req.URL.RawQuery = values.Encode()
  49. }
  50. fmt.Println(req.URL.Host, req.URL.RawQuery)
  51. resp, resErr := http.DefaultClient.Do(req)
  52. if resErr != nil {
  53. return "", resErr
  54. }
  55. defer func() { _ = resp.Body.Close() }()
  56. content, readErr := io.ReadAll(resp.Body)
  57. if readErr != nil {
  58. return "", readErr
  59. }
  60. //if decodeErr := json.Unmarshal(content, result); decodeErr != nil {
  61. // return "", decodeErr
  62. //}
  63. return string(content), nil
  64. }