猿问

Go net/http 请求正文始终为 nil

http 请求正文始终为零。为什么会这样?我正在使用 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"`

}


宝慕林4294392
浏览 96回答 1
1回答

慕盖茨4494581

JSON 适用于待办事项,而不适用于 CreateRequest。解散待办事项:err := json.NewDecoder(r.Body).Decode(&req.Todo)
随时随地看视频慕课网APP

相关分类

Go
我要回答