[英]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.