在Go的http包中,如何在POST请求中获取query string?
大家好!我最近开始学习Go,在处理HTTP服务器时遇到了一个问题。我需要处理一个POST请求,客户端既在query string(URL)中传递参数,也在请求体(form-data)中传递参数。
以下是我的代码示例:
```go
func handlePost(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// 尝试从query string获取参数
name := r.URL.Query().Get("name")
age := r.URL.Query().Get("age")
// 从请求体获取参数
r.ParseForm()
email := r.FormValue("email")
log.Printf("Name: %s, Age: %s, Email: %s", name, age, email)
}
```
问题在于,当我发送带有query string的POST请求时(例如 `POST /submit?name=John&age=30`),`name`和`age`返回为空。而请求体中的`email`工作正常。
我尝试阅读文档,但那里没有...