繁体   English   中英

使用 POSTMAN 访问 FormValue Golang 中的 POST 请求值

[英]Access POST Request Value in FormValue Golang using POSTMAN

我不知道为什么我在 POSTMAN 中发送值时总是收到一个空字符串

func main(){
     rtr := mux.NewRouter()
     rtr.HandleFunc("/search", search).Methods("POST")
}
func search(w http.ResponseWriter, r *http.Request) {
     name := r.FormValue("name") //returns empty 

}

这是 POSTMAN 中的正文请求

正文请求的屏幕截图

{
   "name": "markus"


}

我试图更改正文请求以形成数据

发布请求中表单数据的屏幕截图

但它仍然没有奏效。

有没有人有办法解决吗?

谢谢

您拥有的不是FormValue而是JSON正文。 如果您的 JSON 对象只是字符串到字符串的简单映射,那么您可以执行以下操作:

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

    body, _ := ioutil.ReadAll(r.Body) // check for errors

    keyVal := make(map[string]string)
    json.Unmarshal(body, &keyVal) // check for errors

    name := keyVal["name"]

    // do whatever with name

}

编辑

如果需要解析表单值,则需要调用ParseForm()

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

    err := r.ParseForm()
    if err != nil {
        // handle err
    }

    name := r.FormValue("name")

}

只是想在这里分享更多信息。

如果您在将请求发送到服务器时遇到任何问题,请检查 Postman 的 Header 部分中的 Content-Type。

  • Content-Type设置为application/json以在请求中发送原始 JSON。
  • 如果您在请求中发送表单值,请将Content-Type设置为application/x-www-form-urlencoded 同时在邮递员的正文部分选择x-www-form-urlencoded

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM