我有一个带有有效负载的 HTTP POST 请求indices=0%2C1%2C2这是我的 golang 后端代码err := r.ParseForm()if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return}log.Println("r.PostForm", r.PostForm)log.Println("r.Form", r.Form)body, err := ioutil.ReadAll(r.Body)if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return}log.Println("r.Body", string(body))values, err := url.ParseQuery(string(body))if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return}log.Println("indices from body", values.Get("indices"))输出:r.PostForm map[]r.Form map[]r.Body indices=0%2C1%2C2indices from body 0,1,2为什么 POST 请求没有被 解析r.ParseForm(),而手动解析它却url.ParseQuery(string(body))给出了正确的结果?
2 回答

阿波罗的战车
TA贡献1862条经验 获得超6个赞
问题不在于您的服务器代码,这很好,而只是您的客户端,无论它是什么,都缺少Content-Type
POST 表单的正确标头。只需将标题设置为
Content-Type: application/x-www-form-urlencoded
在你的客户端。

慕的地10843
TA贡献1785条经验 获得超8个赞
从您的 http.Request 使用 PostFormValue("params") 从您的参数中获取值
err := r.ParseForm()
if err != nil{
panic(err)
}
params := r.PostFormValue("params") // to get params value with key
没有找到匹配的内容?试试慕课网站内搜索吧
- 2 回答
- 0 关注
- 255 浏览
添加回答
举报
0/150
提交
取消