前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gin框架入门01--Http请求Body和Header的获取

Gin框架入门01--Http请求Body和Header的获取

原创
作者头像
IT工作者
发布2022-03-11 15:04:24
4.9K0
发布2022-03-11 15:04:24
举报
文章被收录于专栏:程序技术知识

Gin是一个轻量级的Web开发框架,与重量级代表Beego的区别在于,Gin专注于Web 中Http协议处理,数据、表格解析,路由与中间件等,而Beego相对大而全,完整MVC模式,不仅包含了Web协议处理的内容,也包含了数据库的CURD(Beego光数据库的驱动都有三种 mysql/Sqlite/Postgres)

首先对于Gin框架的安装

代码语言:javascript
复制
go get -u github.com/gin-gonic/gin

代码语言:javascript
复制
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

运行 example.go,可以通过浏览器来访问 http://localhost:8080/ping

如果一切运行正常,那么可以看到浏览器中有Json返回

Gin获取Http请求头Header和Body

  一个HTTP报文由3部分组成,分别是:

  (1)、起始行(start line)

  (2)、首部(header)

  (3)、主体(body)

本次主要关注的是发起请求的报文,使用Postman做为测试工具,发起Http请求

代码语言:javascript
复制

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "io/ioutil"
)

func main() {

    fmt.Printf("launch Gin")

    r := gin.Default()
    r.GET("/get",HandleGet)
    r.POST("/getall",HandleGetAllData)

    //如果使用浏览器调试,那么响应Get方法
    //r.GET("/getall",HandleGetAllData)
    r.Run(":9000")

}

func HandleGet(c *gin.Context)  {
    c.JSON(200,gin.H{
        "receive":"65536",
    })

}

func HandleGetAllData(c *gin.Context)  {
   //log.Print("handle log")
    body,_ := ioutil.ReadAll(c.Request.Body)
    fmt.Println("---body/--- \r\n "+string(body))

    fmt.Println("---header/--- \r\n")
    for k,v :=range c.Request.Header {
        fmt.Println(k,v)
    }
    //fmt.Println("header \r\n",c.Request.Header)

    c.JSON(200,gin.H{
        "receive":"1024",
    })

}

运行示例:

postman请求内容

Method:post

Body type: raw

Body: username=123

其中红色框内为HTTP Request Body

橙色框内为 HTTP Request Heade

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档