Jon*_*ond 0 post request go 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
}
Run Code Online (Sandbox Code Playgroud)
这是 POSTMAN 中的正文请求
{
"name": "markus"
}
Run Code Online (Sandbox Code Playgroud)
我尝试更改正文请求以形成数据
但仍然没有成功。
有没有人有办法解决吗?
谢谢
你所拥有的不是身体,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
}
Run Code Online (Sandbox Code Playgroud)
编辑
如果您需要解析表单值,您需要调用ParseForm()
func search(w http.ResponseWriter, r *http.Request) {
err := r.ParseForm()
if err != nil {
// handle err
}
name := r.FormValue("name")
}
Run Code Online (Sandbox Code Playgroud)