Golang 发送 JSON 参数的 POST 请求
在 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-Type 为 application/json。然后,使用 http.Client 发送请求,并使用 json.NewDecoder 解析响应数据。
请将 url 替换为实际的 API 地址,以及根据实际情况修改 User 结构体中的字段。
原文地址: https://www.cveoy.top/t/topic/pkVq 著作权归作者所有。请勿转载和采集!