go语言http协议post方法样例调用

2023-12-13 10:44:22

一、导包和结构体创建

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))
}

文章来源:https://blog.csdn.net/m0_37570494/article/details/134826700
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。