先看官方文檔 對 Form 、PostForm、MutipartForm 注釋講解
// Form是解析好的表單數據,包括URL字段的query參數和POST或PUT的表單數據。 // 本字段只有在調用ParseForm后才有效。在客戶端,會忽略請求中的本字段而使用Body替代。 Form url.Values // PostForm是解析好的POST或PUT的表單數據。 // 本字段只有在調用ParseForm后才有效。在客戶端,會忽略請求中的本字段而使用Body 替代。 PostForm url.Values // MultipartForm是解析好的多部件表單,包括上傳的文件。 // 本字段只有在調用ParseMultipartForm后才有效。 // 在客戶端,會忽略請求中的本字段而使用Body替代。 MultipartForm *multipart.Form
一、獲取GET參數
query := req.URL.Query() get_act := query["act"][0] fmt.Println(get_act)
二、獲取POST參數
2.1 獲取單個POST字段值
post_act := req.PostFormValue("act") fmt.Println(post_act)
2.2 獲取多個POST字段值
如果我們在提交的時候,有兩個一樣input-name怎么辦呢?如下的html代碼
<form method="POST" action="login?act=in"> <input type="text" name="username" class="text" /> <input type="text" name="username" class="text" /> <input type="submit" name="login_button" value="登錄"> </form>
這時候就要把post傳輸的參數當成數組,通過PostFormValue就只能獲得第一個input的內容。怎么能兩個都獲取到呢?
post_act := req.PostForm["username"] fmt.Println(post_act)