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

无法使用 htprouter 在 Golang 中读取表单值

无法使用 htprouter 在 Golang 中读取表单值

Go
慕仙森 2022-01-10 10:40:30
我是 Golang 的新手,正在尝试使用httprouter API运行一个基本的 http 应用程序。尽管遵循了另一个 StackOverflow 问题中给出的建议,但我在阅读已发布的表单数据时遇到了困难。这是我的代码(减去无关项):import (    "fmt"    "net/http"    "github.com/julienschmidt/httprouter")func main() {    r := httprouter.New()    r.POST("/sub", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {        r.Header.Set("content-type", "text/html")        err := r.ParseForm()        if err != nil {            fmt.Fprintf(w, "<h1>Error: %s</h1>\n", err)        }        fmt.Fprintf(w, "<h1>Submitted message!</h1>\n<p>-%s-</p>\n", r.PostFormValue("msg"))    })    http.ListenAndServe("localhost:3000", r)}在输出中,我应该看到-hello-,我只看到--。当我在 Firefox 中检查 http 请求时,在“表单数据”面板中,我看到了msg:"hello",那么为什么 r.PostFormValue("msg")返回一个空白字符串?
查看完整描述

1 回答

?
慕田峪9158850

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

感谢 Volker 指出错误。当我注释掉该行时 r.Header.Set("content-type", "text/html"),问题就解决了。也许这就是问题所在,或者 IDE (LiteIDE) 缓存旧版本的代码存在一些问题。无论如何,我现在可以读取发布的值。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

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