go gin 获取 Post 和 Get 数据

go gin 获取 Post 和 Get 数据,第1张

go gin 获取 Post 和 Get 数据

参考:https://www.kancloud.cn/shuangdeyu/gin_book/949426

可以通过两种方式,最方便的是用 bind 方法,提前定义好 struct,然后匹配到对应的 post/get 数据。

比如我有一个 user 数据需要获取,后面的form:"Id" 等对应的是前端发送给服务器里的数据属性名

type UserForm struct {
	Id              int    `form:"Id"`
	IsPublic        int    `form:"IsPublic"`
	Name            string `form:"Name"`
	Phone           string `form:"Phone"`
	Message         string `form:"Message"`
	Plate           string `form:"Plate"`
	Password        string `form:"Password"`
	WxQr            string `form:"WxQr"`
	Desc            string `form:"Desc"`
	Homepage        string `form:"Homepage"`
	GaodeInvitation string `form:"GaodeInvitation"`
	DateEdit        string `form:"DateEdit"`
	DateRegister    string `form:"DateRegister"`
	Hash            string `form:"Hash"`
	VisitCount      int    `form:"VisitCount"`
}

前端发送的数据应该是这样的:

{
    Id: 1,
    Name: "Tina",
    IsPublic: 1,
    Phone: "1238357231",
    ...
}
一、使用绑定的方式获取
router.POST("/user/edit", func(ctx *gin.Context) {
	var user UserForm
	if err := ctx.ShouldBind(&user); err != nil {
		// 处理错误请求
		return
	}
	// 这里已经将 Post 数据绑定到 user 中了
}

二、 使用直接获取内容的方式

还有一种方式是直接从 Post 数据中单独取得某个属性的值
数据还是以上面的方式传送到服务器

router.POST("/user/edit", func(ctx *gin.Context) {
    name := ctx.PostForm("Name")
}

这样你就能直接获取其中的某个值。

另外还有 PostFormMap PostFormArray 可用,对应数组和对象

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/996114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存