httpUtil.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package util
  2. import (
  3. "DataShare/global"
  4. "bytes"
  5. "fmt"
  6. "github.com/sirupsen/logrus"
  7. "io/ioutil"
  8. "net/http"
  9. "time"
  10. )
  11. func HttpPost(url string, bytesData []byte,xftoken string) ([]byte, error) {
  12. reader := bytes.NewReader(bytesData)
  13. request, err := http.NewRequest("POST", url, reader)
  14. if err != nil {
  15. fmt.Println(err.Error())
  16. msg := fmt.Sprintf("new request failed,request url:%s, param:%s errmsg:%s",url,string(bytesData),err.Error())
  17. global.SystemLogger.Log(logrus.ErrorLevel,msg)
  18. return nil,err
  19. }
  20. //request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  21. request.Header.Set("Content-Type", "application/json")
  22. request.Header.Set("xftoken",xftoken)
  23. client := http.Client{
  24. Timeout: time.Duration(60 * time.Second),
  25. }
  26. resp, err := client.Do(request)
  27. if err != nil {
  28. msg := fmt.Sprintf("client.Do failed,request url:%s, param:%s errmsg:%s",url,string(bytesData),err.Error())
  29. global.SystemLogger.Log(logrus.ErrorLevel,msg)
  30. return nil,err
  31. }
  32. defer resp.Body.Close()
  33. respBytes, err := ioutil.ReadAll(resp.Body)
  34. if err != nil {
  35. fmt.Println(err.Error())
  36. msg := fmt.Sprintf("ioutil readall failed,request url:%s, param:%s errmsg:%s",url,string(bytesData),err.Error())
  37. global.SystemLogger.Log(logrus.ErrorLevel,msg)
  38. return nil,err
  39. }
  40. return respBytes,err
  41. }