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

我不知道为什么在 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"
  }

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

post请求中表单数据的截图

但它仍然没有用。

有没有人有办法解决吗?

谢谢


慕运维8079593
浏览 141回答 2
2回答

一只名叫tom的猫

你在那里拥有的不是一个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
打开App,查看更多内容
随时随地看视频慕课网APP