package main
 
import (
    "fmt"
    "github.com/gin-gonic/gin"
)
 
func main() {
    r := gin.Default()
 
    // 获取路径参数
    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello %s", name)
    })
 
    // 获取查询字符串参数
    r.GET("/welcome", func(c *gin.Context) {
        name := c.Query("name")
        c.String(200, "Welcome %s", name)
    })
 
    // 获取POST请求体中表单数据
    r.POST("/form_post", func(c *gin.Context) {
        name := c.PostForm("name")
        c.String(200, "Received: %s", name)
    })
 
    // 获取POST请求体中JSON数据
    r.POST("/json", func(c *gin.Context) {
        var json struct {
            Name string `json:"name"`
        }
        if err := c.ShouldBindJSON(&json); err != nil {
            c.String(500, "Failed to unmarshal JSON: %v", err)
            return
        }
        c.String(200, "Received: %s", json.Name)
    })
 
    // 启动服务器
    port := "8080"
    r.Run(":" + port)
}这段代码演示了如何在Go语言的Gin框架中接收不同类型的请求参数,包括路径参数、查询字符串参数、表单数据和JSON数据。每个例子都包括了一个简单的HTTP处理函数,用于处理对应类型的请求,并返回响应。