Go 什么时候应该使用ParseForm,什么时候应该使用FormValue和PostFormValue?

Go 什么时候应该使用ParseForm,什么时候应该使用FormValue和PostFormValue?,go,Go,我只是试图获取表单数据,但我不太明白该使用哪种方法 在本文中: 他们使用r.ParseForm()并通过执行r.Form[“username”]来获取post值 但是,当我在自己的代码中尝试此操作时,它不起作用,而是得到了一段字符串,因此我必须执行r.Form[“username”][0]来获取字符串值 为什么这与文章中显示的不同?为什么我要得到一片线 还有另一种方法可以像这样使用r.FormValue(“用户名”) 还有一个r.PostFormValue(“用户名”),另一个 在不同的情况下应

我只是试图获取表单数据,但我不太明白该使用哪种方法

在本文中:

他们使用
r.ParseForm()
并通过执行
r.Form[“username”]
来获取post值

但是,当我在自己的代码中尝试此操作时,它不起作用,而是得到了一段字符串,因此我必须执行
r.Form[“username”][0]
来获取字符串值

为什么这与文章中显示的不同?为什么我要得到一片线

还有另一种方法可以像这样使用
r.FormValue(“用户名”)

还有一个
r.PostFormValue(“用户名”)
,另一个


在不同的情况下应该使用哪一个?

根据经验,当您知道要读取的键时,只需使用
r.PostFormValue(“用户名”)
。这种方法总是在没有任何其他准备的情况下工作。不过,请记住,即使该方法是POST,也不会读取查询参数


但是,如果需要检查发送的数据,则必须首先使用
r.ParseForm()
解析数据,然后使用
r.Form[“username”][0]
读取值。对于希望在同一个键上有多个值的情况也是如此

在调用ParseForm作为
r.FormValue
r.PostFormValue
后,您仍然可以使用
r.FormValue(“key”)
根据文档隐式调用
r.ParseForm