gin框架长连接_Gin框架之参数绑定

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

以下示例分别是对QueryString、form、json进行参数绑定。

注意:

1、结构体内部属性名大写

2、加地址符:

代码:

[

](javascript:void(0)😉

package main

import (

"github.com/gin-gonic/gin"

"net/http"

)

type User struct {

Username string `json:"user" form:"userform"`

Password string `json:"pwd" form:"pwdform"`

}

func main() {

r := gin.Default()

var u User

//queryString数据绑定

r.GET("/user", func(c *gin.Context) {

//参数绑定

err := c.ShouldBind(&u)

if err == nil {

c.JSON(http.StatusOK, gin.H{

"user": u.Username,

"pwd": u.Password,

})

}

})

//form表单数据绑定

r.POST("/form", func(c *gin.Context) {

//参数绑定

err := c.ShouldBind(&u)

if err == nil {

c.JSON(http.StatusOK, gin.H{

"user": u.Username,

"pwd": u.Password,

})

}

})

//form表单数据绑定

r.POST("/json", func(c *gin.Context) {

//参数绑定

err := c.ShouldBind(&u)

if err == nil {

c.JSON(http.StatusOK, gin.H{

"user": u.Username,

"pwd": u.Password,

})

}

})

r.Run(":9090")

}

[

](javascript:void(0)😉

调试:

运行结果使用postman模拟,分别是:

对querystring进行参数绑定结果:

对form表单进行参数绑定结果:

对json进行参数绑定结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值