【发布时间】:2019-06-27 16:18:28
【问题描述】:
我正在学习 golang,并尝试实现自定义组合以熟悉该语言,不幸的是 req.Form 正在返回 nil。
当然我在req.ParseForm()之前跑。
func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
req.ParseForm()
params := req.Form
node, _ := r.tree.findNode(strings.Split(req.URL.Path, "/")[1:], params)
if handler := node.methods[req.Method]; handler != nil {
handler(w, req, params)
}
}
这是我通过GET http://localhost:8080/users/3使用的示例网址
【问题讨论】:
-
GET 请求不包含正文,您是否尝试从 URL 获取参数?
-
你有没有试过检查
func (r *Request) ParseForm() error返回的错误? -
@Зелёный 好吧,当使用 ?a=b 作为查询时,req.Form 仍然有可能解析内容