package utils import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) // FetchData 从给定的URL获取数据 func FetchData(url string) ([]byte, error) { // 发起GET请求 resp, err := http.Get(url) if err != nil { return nil, fmt.Errorf("请求失败: %v", err) } defer resp.Body.Close() // 读取响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, fmt.Errorf("读取响应体失败: %v", err) } return body, nil } // SendPostRequest 发送POST请求的函数 func SendPostRequest(requestURL string, params url.Values) (string, error) { // 创建POST请求 req, err := http.NewRequest("POST", requestURL, strings.NewReader(params.Encode())) if err != nil { return "", fmt.Errorf("创建请求失败: %v", err) } // 设置请求头,表明请求体是表单数据 req.Header.Set("Content-Type", "application/x-www-form-urlencoded") // 发送请求 client := &http.Client{} resp, err := client.Do(req) if err != nil { return "", fmt.Errorf("发送请求失败: %v", err) } defer resp.Body.Close() // 读取响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { return "", fmt.Errorf("读取响应体失败: %v", err) } return string(body), nil }