package util import ( "bytes" "encoding/json" "io" "net/http" "gat1400Exchange/pkg/logger" "gat1400Exchange/vo" ) func SendData(payload []byte, url string) bool { body, err := HttpPost(url, nil, payload) if err != nil { logger.Error("Post request failure, url:%s, err:%s", url, err.Error()) return false } var rsp vo.SyncServerResponse err = json.Unmarshal(body, &rsp) if err != nil { logger.Error("Can't parse response, url:%s, rsp: %v", url, body) return false } return rsp.Success } func HttpPost(url string, header map[string]string, data []byte) ([]byte, error) { req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data)) if err != nil { return nil, err } //req.Header.Set("Content-Type", "applicaiton/json; charset=UTF-8") if header != nil { for k, v := range header { req.Header.Set(k, v) } } cli := &http.Client{} resp, err := cli.Do(req) if err != nil { return nil, err } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return body, nil } func HttpPut(url string, header map[string]string, data []byte) ([]byte, error) { req, err := http.NewRequest(http.MethodPut, url, bytes.NewBuffer(data)) if err != nil { return nil, err } //req.Header.Set("Content-Type", "applicaiton/json; charset=UTF-8") if header != nil { for k, v := range header { req.Header.Set(k, v) } } cli := &http.Client{} resp, err := cli.Do(req) if err != nil { return nil, err } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return body, nil } func HttpGet(url string, header map[string]string) ([]byte, error) { req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { return nil, err } //req.Header.Set("Content-Type", "applicaiton/json; charset=UTF-8") if header != nil { for k, v := range header { req.Header.Set(k, v) } } cli := &http.Client{} resp, err := cli.Do(req) if err != nil { return nil, err } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return body, nil }