package utils import ( "bytes" "fmt" "io" "net/http" "net/url" ) // Get 发送GET请求 func Get(url string, params url.Values, headers map[string]string) ([]byte, error) { // requestURL := fmt.Sprintf("%s?%s", url, params.Encode()) // req, err := http.NewRequest("GET", requestURL, nil) // if err != nil { // return nil, err // } // for key, value := range headers { // req.Header.Set(key, value) // } // resp, err := http.DefaultClient.Do(req) // if err != nil { // return nil, err // } // defer resp.Body.Close() // return io.ReadAll(resp.Body) return nil, nil } // Post 发送POST请求, body体为json格式 func Post(url string, params []byte, headers map[string]string) ([]byte, error) { req, err := http.NewRequest("POST", url, bytes.NewBuffer(params)) if err != nil { fmt.Println("Post NewRequest error:", err.Error()) return nil, err } req.Header.Set("Content-Type", "application/json") for key, value := range headers { req.Header.Set(key, value) } resp, err := http.DefaultClient.Do(req) if err != nil { fmt.Println("Post Do error:", err.Error()) return nil, err } if resp.StatusCode >= 400 { return nil, fmt.Errorf("Post request error: %s", resp.Status) } defer resp.Body.Close() return io.ReadAll(resp.Body) } // Post 发送POST请求, url.Values处理版本 // func Post(url string, params url.Values, headers map[string]string) ([]byte, error) { // body, _ := json.Marshal(params) // req, err := http.NewRequest("POST", url, bytes.NewBuffer(body)) // if err != nil { // return nil, err // } // req.Header.Set("Content-Type", "application/json") // for key, value := range headers { // req.Header.Set(key, value) // } // resp, err := http.DefaultClient.Do(req) // if err != nil { // return nil, err // } // defer resp.Body.Close() // return io.ReadAll(resp.Body) // }