为了账号安全,请及时绑定邮箱和手机立即绑定

请求表返回零

请求表返回零

Go
MMMHUHU 2023-06-26 17:41:05
我正在学习 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)    }}这是我使用的示例 URLGET http://localhost:8080/users/3
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

根据文档,req.Form如果您致电,应始终更新req.ParseForm

对于所有请求,ParseForm 解析来自 URL 的原始查询并更新 r.Form。

而且,如果你看一下ParseForm的实现,似乎不可能是在nil方法执行之后。

确实可能发生的情况是,req.Form最终会变成一张空地图,也许这就是您在那里看到的。

如果您正在执行以下操作,则将其为空是有意义的:

GET http://localhost:8080/users/3

由于它没有用于ParseForm实际解析的参数,因此req.Form最终将成为一个空映射。

例如,如果您尝试这样做:

GET http://localhost:8080/users/3?a=b

然后你应该在地图中获得一个条目"a"作为键和["b"]值。


查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信