看gin的文档,接收从客户端发来的各种参数,有两大类方式:
1、使用接收单个参数各种方法:
c.Param()
c.Query
c.DefaultQuery
c.PostForm
c.DefaultPostForm
c.QueryMap
c.PostFormMap
c.FormFile
c.MultipartForm
2、使用各种绑定方法
c.Bind
c.BindJSON
c.BindXML
c.BindQuery
c.BindYAML
c.ShouldBind
c.ShouldBindJSON
c.ShouldBindXML
c.ShouldBindQuery
c.ShouldBindYAML
func main() {
router := gin.Default()
router.POST("/post", func(c *gin.Context) {
id := c.Query("id") // 查询参数
page := c.DefaultQuery("page", "0")
name := c.PostForm("name") // body 里的x-www-form-urlencoded 参数
message := c.PostForm("message")
fmt.Printf("id: %s; page: %s; name: %s; message: %s", id, page, name, message)
})
router.Run(":8080")
}
//结果输出
//id: 1234; page: 1; name: manu; message: this_is_great
c.FormFile,用于处理上传文件的
c.Query,对于请求 url 查询参数用
如果参数不是放在url里的,也可以在body里,比如 body 里的x-www-form-urlencoded 参数,如下面的name=manu&message=this_is_great 对于gin,要使用 name := c.PostForm("name") api
关注下 Content-Type 这个字段,表示了body的类型