Go 从邮递员处获取http post请求中的参数

Go 从邮递员处获取http post请求中的参数,go,httprequest,Go,Httprequest,我有一个Go服务器,但似乎无法从POST请求中获取服务器中的POST(表单)参数列表 当我在Body选项卡中选择的选项是表单数据时,我从邮递员发送请求,请求如下所示: 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; bound

我有一个Go服务器,但似乎无法从POST请求中获取服务器中的POST(表单)参数列表

当我在Body选项卡中选择的选项是
表单数据时,我从邮递员发送请求,请求如下所示:

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,要求格式值(“aaa”))


提前感谢您的帮助

当它是多部分时,您必须:

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())
    } 
}

如果您不向我们展示代码,我们无法告诉您如何修复代码。@Flimzy代码相当简单,我定义了一个根,在我的处理函数中,我编写了此代码,当内容类型为
x-www-form-urlencoded
时,代码就可以了。我没有说它不简单。我说我们需要看看。