http请求正文始终为nil。为什么会这样呢?我正在使用gokit工具包。下面的代码是处理程序的一部分。
func decodeAddRequest(_ context.Context, r *http1.Request) (interface{}, error) {
req := endpoint.AddRequest{}
p, _ := ioutil.ReadAll(r.Body)
fmt.Printf("%s\n", p)
err := json.NewDecoder(r.Body).Decode(&req)
return req, err
}
我的POST JSON请求看起来像这样
{
"title": "test test",
"complete": false
}
保存到数据库的是
{
"title": "",
"complete": false
}
类型为:
type AddRequest struct {
Todo io.Todo `json:"todo"`
}
type Todo struct {
Id bson.ObjectId `json:"id" bson:"_id"`
Title string `json:"title" bson:"title"`
Complete bool `json:"complete" bson:"complete"`
}
答案 0 :(得分:1)
JSON用于待办事项,而不用于CreateRequest。取消待办事项的显示:
err := json.NewDecoder(r.Body).Decode(&req.Todo)