一直都是用结构体接收参数,假如事先不清楚参数名,或者参数是不固定的,就要动态获取。
ctx *gin.Context
form方式的请求:
ctx.Request.ParseForm()
for k, v := range ctx.Request.PostForm {
fmt.Printf("k:%v\n", k)
fmt.Printf("v:%v\n", v)
}
json方式的请求:
data, _ := ioutil.ReadAll(ctx.Request.Body)
fmt.Printf("ctx.Request.body: %v", string(data))
然后从data里解析出来
代码段记录
logging.Debugf("c.Request.Method: %v", ctx.Request.Method) logging.Debugf("c.Request.ContentType: %v", ctx.ContentType()) logging.Debugf("c.Request.Body: %v", ctx.Request.Body) ctx.Request.ParseForm() logging.Debugf("c.Request.Form: %v", ctx.Request.PostForm) for k, v := range ctx.Request.PostForm { logging.Debugf("k:%v\n", k) logging.Debugf("v:%v\n", v) } logging.Debugf("c.Request.ContentLength: %v", ctx.Request.ContentLength) data, _ := ioutil.ReadAll(ctx.Request.Body) logging.Debugf("c.Request.GetBody: %v", string(data))