gin post 数据参数_gin框架post路由

本文详细介绍了Gin框架处理POST请求的各种方式,包括form表单提交、JSON数据、x-www-form-urlencoded数据、同时支持JSON和form数据、XML格式数据以及multipart/form-data(文件上传)。并给出了相应的Gin代码示例和前端调用示例。
摘要由CSDN通过智能技术生成

由于本篇的内容需要涉及到一些静态资源的加载(get方法中打开的html页面),所以我们先进行静态资源配置,这里主要使用LoadHTMLGlob 加载html模板文件,使用StaticFS方法css、js及上传的文件。具体如下:

func setStaticFS(r *gin.Engine) {

r.LoadHTMLGlob("views/*")

r.StaticFS("/static", http.Dir("public/static"))

r.StaticFS("/upload", http.Dir("upload"))

}

一、post请求的分类

常用请求Headers中Content-Type的类型有text/plain、text/html、application/json、application/x-www-form-urlencoded、application/xml和multipart/form-data等。具体如下:

text/plain 纯文本

text/html HTML文档

application/json json格式数据

application/x-www-form-urlencoded 使用HTTP的POST方法提交的表单

application/xml xml格式数据

application/form-data主要是用来上传文件

二、API分组

gin提供了分组功能,便于把一些功能模块集中到一起,通过同一请求的URL前缀进行处理,我们使用分组功能,先把框架写出来,再构建具体的函数,如下:

api := r.Group("/api")

{

api.POST("/form_post", formPost)

api.POST("/json_post", jsonPost)

api.POST("/urlencoded_post", urlencodedPost)

api.POST("/json_and_form_post", jsonAndFormPost)

api.POST("/xml_post", xmlPost)

api.POST("/file_upload", fileUpload)

api.GET("/list", func(c *gin.Context) {

message := c.Query("message")

nick := c.DefaultQuery("nick", "anonymous")

c.JSON(http.StatusOK, gin.H{

"status": "SUCCESS",

"message": message,

"nick": nick,

})

})

}

通过该操作,我们完成了api路由分组。

三、功能实现

1、form 表单提交

上面路由分组中的/api/form_post调用的是后面的formPost方法,我们通过如下代码实现该方法:

api.POST("/form_post", formPost)

// 表单提交

func formPost(c *gin.Context) {

message := c.PostForm("message")

nick := c.DefaultPostForm("nick", "anonymous") // 没有获取到nick值时给一个默认值

log.Println(message, nick)

c.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值