You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
925 B

  1. package utils
  2. import (
  3. "errors"
  4. "fmt"
  5. "github.com/valyala/fasthttp"
  6. )
  7. func Get(url string) ([]byte, error) {
  8. status, resp, err := fasthttp.Get(nil, url)
  9. if err != nil {
  10. return []byte{}, err
  11. }
  12. if status != fasthttp.StatusOK {
  13. return []byte{}, errors.New(fmt.Sprintf("请求失败:%d", status))
  14. }
  15. return resp, nil
  16. }
  17. func PostJson(url string, JsonString string) ([]byte, error) {
  18. req := fasthttp.AcquireRequest()
  19. resp := fasthttp.AcquireResponse()
  20. defer func() {
  21. // 用完需要释放资源
  22. fasthttp.ReleaseResponse(resp)
  23. fasthttp.ReleaseRequest(req)
  24. }()
  25. // 默认是application/x-www-form-urlencoded
  26. req.Header.SetContentType("application/json")
  27. req.Header.SetMethod("POST")
  28. req.SetRequestURI(url)
  29. requestBody := []byte(JsonString)
  30. req.SetBody(requestBody)
  31. if err := fasthttp.Do(req, resp); err != nil {
  32. return []byte{}, err
  33. }
  34. b := resp.Body()
  35. fmt.Println(string(b))
  36. return b, nil
  37. }