步骤说明

路径参数

请求地址:/v1/member/info/:code

code := c.Param("code")

Get参数

请求地址:/v1/member/info?code=”嘿嘿嘿”

code := c.Query("code")
code := ctx.DefaultQuery("code", "axinblog")

Post参数

  • json 中获取
type Params struct {
MemberId int64 `json:"member_id"`
Issue string `json:"issue"`
}

var params Params
_ = ctx.BindJSON(&params)
  • 表单中获取
// 表单取值
code := ctx.PostForm("code")

// 无值取默认
code := ctx.DefaultPostForm("code", "axinblog")

Json参数

  • 通过map

    params := make(map[string]interface{})
    _ = ctx.BindJSON(&params)

    code := params["code"].(string)
  • 通过struct

    type Params struct {
    Code string `json:"code"`
    }
    func Test(ctx *gin.Context) {
    params := Params{}

    _ = ctx.BindJSON(&params)

    ctx.JSON(http.StatusOK, gin.H{
    "code": params.Code,
    })
    }

获取所有参数

  • form方式的请求
ctx.Request.ParseForm()
for k, v := range ctx.Request.PostForm {
fmt.Printf("k:%v\n", k)
fmt.Printf("v:%v\n", v)
}
  • application/json
data, _ := ioutil.ReadAll(ctx.Request.Body)
fmt.Printf("ctx.Request.body: %v", string(data))



buf := make([]byte, 1024)
num, _ := ctx.Request.Body.Read(buf)
reqBody := string(buf[0:num])
fmt.Printf("ctx.Request.body: %v", reqBody)