當我查看如何讀取表單資料的示例時,我遇到了兩種讀取表單后值的方法:
使用 r.PostFormValue()
username := r.PostFormValue("username")
password := r.PostFormValue("password")
使用 r.PostForm.Get()
username := r.PostForm.Get("username")
password := r.PostForm.Get("password")
為什么要使用一個?
uj5u.com熱心網友回復:
無論Request.PostFormValue()和Request.PostForm.Get()回傳值相同,主要區別是Request.PostForm不自動填充。
Request.PostForm是表單資料的映射,通過呼叫Request.ParseMultipartForm()或填充Request.ParseForm()。這不會自動發生,因為這需要讀取和決議請求正文,這可能不是在所有情況下都需要的。
Request.PostFormValue()呼叫,ParseMultipartForm()并ParseForm()在必要時(如果之前沒有呼叫過)以確保Request.PostForm填充。Request.PostForm是一個選擇器,表示所述Request的PostForm場,因此,它不涉及呼叫ParseForm()。它假設您已經這樣做了。如果沒有,任何PostForm.Get()呼叫都會“悄悄地”回傳一個空字串。
所以你應該只Request.PostForm.Get()在你已經決議了表單資料的情況下使用(例如通過顯式呼叫Request.ParseForm()或通過先前Request.PostFormValue()呼叫間接呼叫)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398114.html
