Avatar ·

如何在Go中正确处理JSON POST请求?解码问题

大家好!我刚开始学习Go,正在编写一个简单的REST API。在处理JSON POST请求时遇到了问题。我的代码看起来逻辑正确,但服务器总是返回空数据或错误。\n\n这是我的处理器代码:\n\n```go\nfunc CreateUserHandler(w http.ResponseWriter, r *http.Request) {\n if r.Method != http.MethodPost {\n http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)\n return\n }\n\n var user User\n err := json.NewDecoder(r.Body).Decode(&user)\n if err != nil {\n http.Error(w, err.Error(), http.StatusBadRequest)\n return\n }\n defer r.Body.Close()\n\n fmt.Printf("User received: %+v", user)\n w.WriteHeader(http.StatusCreated)\n json.NewEncoder(w).Encode(user)\n}\n```\n\nUser结构体:\n\n```go\ntype User struct {\n Name string `json:"name"`\n Email string `json:"email"`\n Age int `json:"age"`\n}\n```\n\n我通过curl发送请求:\n```bash\ncurl -X POST http://loca