在 Gin 框架中,可以通过 c.Request
获取请求对象,从而访问请求的参数。以下是一个示例,展示如何打印出 c.Request
中的参数:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func LoggerMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// 打印请求方法和路径
fmt.Printf("开始处理请求: %s %s\n", c.Request.Method, c.Request.URL.Path)
// 打印请求参数
queryParams := c.Request.URL.Query()
for key, values := range queryParams {
for _, value := range values {
fmt.Printf("参数 - %s: %s\n", key, value)
}
}
// 继续处理请求
c.Next()
// 请求处理完成后的日志
fmt.Printf("请求处理完成: %s %s\n", c.Request.Method, c.Request.URL.Path)
}
}
func main() {
r := gin.Default()
// 注册中间件
r.Use(LoggerMiddleware())
// 定义路由和处理逻辑
r.GET("/hello", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Hello, Gin!"})
})
// 启动服务器
if err := r.Run(":8080"); err != nil {
fmt.Println("服务器启动失败:", err)
}
}
在这个示例中,LoggerMiddleware
中间件会打印出请求的方法、路径和参数。它遍历了 URL 中的查询参数,并打印出每个参数的键值对信息。这样你可以清楚地看到请求中包含的参数信息。