如何在Go中发送JSON字符串的POST请求?
大家好!我最近开始学习Go,正在编写一个用于与外部API交互的小型REST客户端。我需要发送一个带有JSON格式请求体的POST请求,但我一直无法弄清楚如何正确实现。
我有一个数据结构,我将其序列化为JSON,并希望将其发送到服务器。以下是我尝试过的代码:
```go
package main
import (
"fmt"
"net/http"
"strings"
)
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
user := User{Name: "伊万", Email: "ivan@example.com"}
// 如何将其作为JSON在POST请求中发送?
resp, err := http.Post("https://api.example.com/users", "application/json", strings.NewReader(user))
if err != nil {
fmt.Println(err)
}
fmt.Println(resp)
}
```
我明白`strings.NewReader(user)`不起作用,因为它期望一个字符串而不是结构体。但如何正确地将结构体转换为JSON并发送?是否需要使用