2 回答

TA貢獻1836條經驗 獲得超4個贊
要從 POST/PUT/PATCH 請求的正文獲取多部分表單數據,可以使用解析多部分表單
方法來解析正文,然后通過 PostForm
字段訪問數據?;蛘?,您可以使用 FormValue
僅獲取與表單字段關聯的第一個值。
maxMemory := 32<<20
if err := r.ParseMultipartForm(maxMemory); err != nil {
panic(err)
}
fmt.Println(_getData{
Title: r.FormValue("title"), // FormValue returns string
Tag: r.PostForm["tag[]"], // PostForm is a map of []string
})

TA貢獻1826條經驗 獲得超6個贊
您可以使用包 github.com/senpathi/paramex 將表單數據解析為 json,如帶注釋的結構。結構字段必須使用關鍵字進行注釋,并且標記名稱是表單數據的鍵。param
您的結構應如下所示。
type _getData struct {
Title string `param:"title"`
Tag []string `param:"tag[]"`
}
這是問題中提到的郵遞員請求的更新的 MakeMap 處理程序函數
func MakeMap(w http.ResponseWriter, r *http.Request) {
// userInfo := context.Get(r, "userInfo").(model.User)
type _getData struct {
Title string `param:"title"`
Tag []string `param:"tag[]"`
}
// this needed because u send data from Postman as multipart/form-data
maxMemory := 32<<20
if err := r.ParseMultipartForm(int64(maxMemory)); err != nil {
panic(err)
}
var getData _getData
extractor := paramex.NewParamExtractor()
err := extractor.ExtractForms(&getData, r)
if err != nil {
panic(err.Error())
}
fmt.Print(getData)
//Output: {defaultMap [travelling travelling2]}
}
- 2 回答
- 0 關注
- 164 瀏覽
添加回答
舉報