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

最佳实践:r.PostFormValue("key") VS r.PostForm.Get

最佳实践:r.PostFormValue("key") VS r.PostForm.Get

Go
森林海 2022-10-24 09:26:02
当我查看如何读取表单数据的示例时,我遇到了两种读取表单值的方法:使用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字段的选择器,因此,它不涉及调用. 它假设你已经这样做了。如果没有,任何调用都将“静默”返回一个空字符串。RequestPostFormParseForm()PostForm.Get()

所以你应该只Request.PostForm.Get()在你已经解析过表单数据的情况下使用(例如通过显式调用Request.ParseForm()或间接通过先前的Request.PostFormValue()调用)。


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号