gin中multipart/urlencoded繫結
阿新 • • 發佈:2021-10-20
package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) type LoginForm struct { // form:"user" 表示前端提交form表單時User對應的key的名稱為:user // binding: "required" required表示前端必須傳入該鍵才可以 User string `form:"user" binding:"required"` Password string `form:"password" binding:"required"` } func main() { router := gin.Default() router.POST("/login", func(c *gin.Context) { var form LoginForm // 你可以使用顯示繫結宣告繫結 multipart form //if err := c.ShouldBindWith(&form, binding.Form); err == nil { // 先校驗使用者傳參是否符合LoginForm的校驗約束 // 或者簡單的使用ShouldBind方法自動繫結,在這種情況下將自動選擇合適的繫結 if err := c.ShouldBind(&form); err == nil { // 在校驗傳入的使用者名稱密碼是否正確 if form.User == "user" && form.Password == "password" { c.JSON(http.StatusOK, gin.H{"status": "you are logged int"}) } else { c.JSON(http.StatusUnauthorized, gin.H{"status": "Unauthorized"}) } } else { fmt.Println(err) c.JSON(http.StatusBadRequest, gin.H{"key": "key error"}) } }) router.Run() }