我有一个Go服务器,但似乎无法从POST请求中获取服务器中的POST(表单)参数列表
当我在“正文”标签中选择的选项为form-data
时,我从邮递员发送了请求,请求看起来像这样:
POST /todo/323/item HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache
Postman-Token: ef4b5606-3079-fb02-824f-f58ae89ee6f3
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="aaa"
skhdfb
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="test"
1213
------WebKitFormBoundary7MA4YWxkTrZu0gW--
我得到null,但是当选项为x-www-form-urlencoded
时,它可以正常工作。我该怎么办?
这是我尝试获取值的方法:
fmt.Fprintln(w, req.FormValue("aaa"))
在此先感谢您的帮助
答案 0 :(得分:0)
当它是多部分内容时,您要么要做:
req.ParseMultipartForm(0)
fmt.Println(req.FormValue("aaa"))
或者如果您不想将整个内容加载到内存中,则可以执行以下操作:
form, err := req.MultipartReader()
for {
part, err := form.NextPart()
if err == io.EOF {
break
}
if part.FormName() == "aaa" {
buf := new(bytes.Buffer)
buf.ReadFrom(part)
fmt.Println(buf.String())
}
}