Gin接收数据

本文介绍了Gin框架下如何接收参数,包括querystring、form和path参数,重点讲解了ShouldBind方法,它能自动从JSON、form、QueryString中提取数据到结构体。此外,还详细阐述了如何接收单个和多个文件,提供了`ctx.FormFile`的使用示例。
摘要由CSDN通过智能技术生成

接收参数

获取querystring参数

 querystring指的是URL中?后面携带的参数,例如:/user/search?username=小王子&address=沙河

获取form参数

请求的数据通过form表单来提交,例如向/user/search发送一个POST请求

获取path参数

请求的参数通过URL路径传递,例如:/user/search/小王子/沙河

注:以上三种都有自己单独获取参数的方法,但不常用

gin框架提供了一种参数绑定的方法,能够更方便的获取请求相关参数,提高开发效率,我们可以基于请求的Content-Type识别请求数据类型并利用反射机制自动提取请求中QueryString、form表单、JSON、XML等参数到结构体中。 下面的示例代码演示了.ShouldBind()强大的功能,它能够基于请求自动提取JSON、form表单和QueryString类型的数据,并把值绑定到指定的结构体对象。

// Binding from JSON
type Login struct {
   
	User     string `form:"user" json:"user" binding:"required"`
	Password string `form:"password" json:"password" binding:"required"`
}

func main() {
   
	router := gin.Default()

	
	router.POST("/login", func(c *gin.Context) {
   
		var login Login
		if err := c.ShouldBind(&login); err == nil {
   
			c.JSON(http.StatusOK, gin.H{
   
				"user":     login.User,
				"password": login.Password,
			})
		} else {
   
			c.JSON(http.StatusBadRequest, gin.H{
   "error": err.Error(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值