gin Http请求Body和Header的获取 request post form Query header
gin Http请求Body和Header的获取 request post form Query header
请求参数
POST /post?id=1234&page=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
test: test
name=manu&message=this_is_great
服务端代码
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"io/ioutil"
)
func main() {
router := gin.Default()
router.POST("/test", func(c *gin.Context) {
// 查询请求URL后面拼接的参数
id := c.Query("id")
//查询请求URL后面的参数,如果没有填写默认值
page := c.DefaultQuery("page", "0")
// 从表单中查询参数
name := c.PostForm("name")
//从取得URL中参数,此处URL中没有name字段
name = c.Param("name")
// 从表单中查询参数,,如果没有就获取默认值
message := c.DefaultPostForm("message", "default")
// 获取Body值
bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
// 获取header指定字段
headerTest := c.Request.Header.Get("test")
for k, v := range c.Request.Header {
fmt.Println(k, v)
}
fmt.Printf("id: %s; page: %s; name: %s; message: %s; header_test:%s; bodyBytes:%s", id, page, name, message, headerTest, bodyBytes)
})
router.Run(":8080")
}
postman请求
请求打印
Accept [*/*]
Postman-Token [fb0ab2f2-8653-4fc9-9dce-a18ed349d113]
Accept-Encoding [gzip, deflate]
Content-Length [31]
User-Agent [PostmanRuntime/7.15.0]
Test [test123]
Cache-Control [no-cache]
Connection [keep-alive]
Content-Type [application/x-www-form-urlencoded]
id: 123; page: 1; name: ; message: this_is_great; header_test:test123; bodyBytes:
gin文档:https://gin-gonic.com/zh-cn/docs/examples/query-and-post-form/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-11-18 RabbitMQ+PHP教程