返回
Gin 请求与请求解析:Get 传参方式与参数解析的奥秘
后端
2023-12-23 03:21:47
Gin 快速开发 | 02 - Gin 请求
1. Gin 请求与请求解析
1.1 GET 传参方式与参数解析
GET 请求可以通过请求地址传递参数,具体有两种:
- 一种是将传递的参数放在请求 URI 中,既参数跟在请求地址的后面,使用问号分隔。例如:
/user?id=1&name=John
- 另一种是将传递的参数放在请求头中,即在请求头中设置一个名为
X-Params
的字段,其值就是传递的参数。例如:
GET /user HTTP/1.1
Host: localhost:8080
X-Params: id=1&name=John
Gin 支持这两种 GET 请求参数传递方式。
func main() {
r := gin.Default()
// GET 请求参数解析
r.GET("/user", func(c *gin.Context) {
id := c.Query("id")
name := c.Query("name")
// 使用参数
fmt.Printf("id: %s, name: %s", id, name)
})
// 启动 Gin 服务
r.Run(":8080")
}
1.2 POST 请求参数解析
POST 请求的参数可以通过请求体传递。请求体中的参数可以是表单数据、JSON 数据或其他类型的数据。
func main() {
r := gin.Default()
// POST 请求参数解析
r.POST("/user", func(c *gin.Context) {
// 表单数据
name := c.PostForm("name")
// JSON 数据
var user struct {
Name string `json:"name"`
Age int `json:"age"`
}
if err := c.BindJSON(&user); err != nil {
// 处理错误
}
// 使用参数
fmt.Printf("name: %s, age: %d", user.Name, user.Age)
})
// 启动 Gin 服务
r.Run(":8080")
}