当我查看如何读取表单数据的示例时,我遇到了两种读取表单值的方法:使用r.PostFormValue()username := r.PostFormValue("username")
password := r.PostFormValue("password")使用r.PostForm.Get()username := r.PostForm.Get("username")
password := r.PostForm.Get("password")为什么要使用一个而不是另一个?
1 回答

犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
两者都Request.PostFormValue()
返回Request.PostForm.Get()
相同的值,主要区别在于Request.PostForm
不会自动填充。
Request.PostForm
是表单数据的映射,通过调用Request.ParseMultipartForm()
or填充Request.ParseForm()
。这不会自动发生,因为这需要读取和解析请求正文,而这可能并非在所有情况下都需要。
Request.PostFormValue()
调用ParseMultipartForm()
并ParseForm()
在必要时(如果之前未调用过)确保Request.PostForm
已填充。Request.PostForm
是一个表示's字段的选择器,因此,它不涉及调用. 它假设你已经这样做了。如果没有,任何调用都将“静默”返回一个空字符串。Request
PostForm
ParseForm()
PostForm.Get()
所以你应该只Request.PostForm.Get()
在你已经解析过表单数据的情况下使用(例如通过显式调用Request.ParseForm()
或间接通过先前的Request.PostFormValue()
调用)。
- 1 回答
- 0 关注
- 153 浏览
添加回答
举报
0/150
提交
取消