我是 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) 缓存旧版本的代码存在一些问题。无论如何,我现在可以读取发布的值。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消