req.FormValue不映射需求主体值

问题描述 投票:-2回答:1

我正在尝试在request.body中挑选一个值,但我不断得到一个空字符串。表单映射也将显示为空。我在做什么错?

package user

import (
    "fmt"
    "net/http"

    "../../types"
)

func PostTest(w http.ResponseWriter, r *http.Request) {

    r.ParseForm()

    x := r.FormValue("name")
    fmt.Println(x)
}

发布请求的正文:

{
    "name":"Tom",
    "age":25
}
rest go post
1个回答
2
投票

原因是因为请求正文不是有效的表单数据,而是一小段JSON数据。您需要先解析它,然后才能提取名称,例如:]

type data struct {
    Name string
    Age  int
}

func PostTest(w http.ResponseWriter, r *http.Request) {
    var d data
    json.NewDecoder(r.Body).Decode(&d) // Error handling omitted.
    fmt.Println(d.Name)
}

这里是Playground演示这一点。为了简洁起见,我省略了错误处理。

© www.soinside.com 2019 - 2024. All rights reserved.