package sendPost import ( "bytes" "encoding/json" "errors" "fmt" "github.com/tidwall/gjson" "io" "net/http" "strings" ) func SendPostRequest(urls string, payload interface{}) ([]byte, error) { // 将 payload 转换为 JSON 字符串 marshal, err := json.Marshal(payload) if err != nil { return nil, errors.New("参数解析失败") } // 创建 POST 请求 req, err := http.NewRequest("POST", urls, bytes.NewBuffer(marshal)) if err != nil { return nil, errors.New("设置请求参数失败") } req.Header.Set("Content-Type", "application/json") // 发送请求 client := &http.Client{} resp, err := client.Do(req) if err != nil { return nil, errors.New("发送请求失败") } defer resp.Body.Close() // 读取响应体 all, err := io.ReadAll(resp.Body) if err != nil { return nil, errors.New("读取响应体失败") } // 打印原始响应体 fmt.Println("原始响应体:", string(all)) // 检查响应码 code := gjson.Get(string(all), "code").String() if !strings.EqualFold(code, "0000") { return nil, fmt.Errorf("响应码不是 0000") } return all, nil }