一、导包和结构体创建
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
//此处结构体根据实际情况定义
type RequestParams struct {
Page int `json:"page"`
Size int `json:"size"`
Topic string `json:"topic"`
}
二、主函数调用
根据调用的实际情况进行传参:
func main() {
// 创建请求参数
// go语言中最后一个参数需要保留,
params := RequestParams{
Page: 1,
Size: 10,
Topic: "BATTERY",
}
// 将请求参数编码为JSON格式
jsonData, err := json.Marshal(params)
if err != nil {
fmt.Println("JSON编码失败:", err)
return
}
// 发送POST请求
url := "https://aaa/list" // 替换为实际的URL
//bytes.NewBuffer(jsonData) 为post请求需要的参数
resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("POST请求失败:", err)
return
}
defer resp.Body.Close()
// 读取响应内容
//老版本可以这么读取
//body, err := ioutil.ReadAll(resp.Body)
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println("读取响应失败:", err)
return
}
// 打印响应内容
fmt.Println("响应内容:", string(body))
}