在 Golang 中,可以使用 net/http 包发送 POST 请求并传递 JSON 参数。下面是一个示例代码:

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
)

// 定义一个 User 结构体
type User struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

func main() {
	// 替换为实际的 API 地址
	url := "https://example.com/api"
	user := User{
		Name:  "John Doe",
		Email: "john@example.com",
	}

	// 将 user 结构体转换为 JSON
	jsonData, err := json.Marshal(user)
	if err != nil {
		fmt.Println(err)
		return
	}

	// 创建一个 POST 请求
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Println(err)
		return
	}

	// 设置请求头的 Content-Type 为 application/json
	req.Header.Set("Content-Type", "application/json")

	// 发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer resp.Body.Close()

	// 解析响应
	// 这里可以根据实际情况选择如何处理响应数据
	var result map[string]interface{}
	err = json.NewDecoder(resp.Body).Decode(&result)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println(result)
}

在代码中,首先定义了一个 User 结构体,然后将其转换为 JSON 格式的数据。接下来,创建一个 POST 请求并设置请求头的 Content-Typeapplication/json。然后,使用 http.Client 发送请求,并使用 json.NewDecoder 解析响应数据。

请将 url 替换为实际的 API 地址,以及根据实际情况修改 User 结构体中的字段。


原文地址: https://www.cveoy.top/t/topic/pkVq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录