我开始疯狂地试图让 Go 解码这个 json 请求正文。这是一个示例请求:curl -X POST -d "{\"username\":\"foo\", \"password\":\"bar\"}" http://localhost:3000/users这是我的处理程序:mux.HandleFunc("/users", func(rw http.ResponseWriter, req *http.Request) { var body struct { username string password string } // buf := make([]byte, req.ContentLength) // req.Body.Read(buf) // fmt.Println(string(buf)) // // The above commented out code will correctly print: // {"username":"foo", "password":"bar"} err := json.NewDecoder(req.Body).Decode(&body) if err != nil { rw.WriteHeader(http.StatusNotAcceptable) return } fmt.Printf("%+v\n", body) // prints -> {username: password:}})就像评论所暗示的那样,我可以验证这req.Body确实是正确的——但无论出于何种原因,json.NewDecoder(req.Body).Decode(&body)永远不会填写body.任何帮助将不胜感激!
1 回答
- 1 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消