转到net / http请求正文始终为nil

时间:2018-10-28 12:09:45

标签: go

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"`
}

1 个答案:

答案 0 :(得分:1)

JSON用于待办事项,而不用于CreateRequest。取消待办事项的显示:

err := json.NewDecoder(r.Body).Decode(&req.Todo)