我是Golang的新手并尝试使用 httprouter API运行基本的http应用。尽管遵循了in another StackOverflow question给出的建议,但我已经阅读了张贴的表格数据。
这是我的代码(减去无关紧要):
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")
会返回一个空白字符串?
答案 0 :(得分:1)
感谢Volker指出错误。当我注释掉r.Header.Set("content-type", "text/html")
行时,问题就解决了。也许这就是问题,或者IDE(LiteIDE)缓存旧版本的代码时可能存在一些问题。无论如何,我现在可以阅读发布的值。