You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang中使用Gin框架获取Postman请求头数据

在Golang Gin框架中获取Postman请求头数据的方法

嘿,别发愁啦!用Gin获取请求头其实非常简单,我来给你一步步讲清楚怎么操作——不管是标准请求头还是你自定义的头,都能轻松拿到。

核心方法:c.GetHeader() 和 c.Request.Header

Gin的上下文对象*gin.Context提供了两种实用方式来获取请求头:

  • c.GetHeader(key string):快速获取单个指定的请求头,自动忽略大小写(比如你在Postman里写x-user-id,用X-User-ID也能拿到)
  • c.Request.Header:直接访问原生的HTTP Header对象,能获取所有请求头,类型是http.Header(本质是map[string][]string,支持一个头对应多个值)

完整示例代码

下面是一个可直接运行的示例,你可以照着修改适配你的需求:

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    // 初始化Gin引擎
    router := gin.Default()

    // 定义一个POST接口,用来接收Postman的请求
    router.POST("/fetch-headers", func(c *gin.Context) {
        // 1. 获取单个指定请求头(比如你Postman里的Authorization、自定义的X-Custom-Token)
        authToken := c.GetHeader("Authorization")
        customToken := c.GetHeader("X-Custom-Token")
        
        // 2. 遍历所有请求头,整理成易读的格式
        allHeaders := make(map[string]string)
        for key, values := range c.Request.Header {
            // 这里取第一个值,若需要多值可直接存values切片
            allHeaders[key] = values[0]
        }

        // 将获取到的头数据返回,方便你在Postman里验证结果
        c.JSON(http.StatusOK, gin.H{
            "authorization": authToken,
            "custom_token":  customToken,
            "all_headers":   allHeaders,
        })
    })

    // 启动服务,监听8080端口
    router.Run(":8080")
}

Postman测试步骤

  1. 启动上面的Gin服务
  2. 在Postman里新建一个POST请求,地址填http://localhost:8080/fetch-headers
  3. 切换到Headers标签,添加你想要测试的请求头(比如你图里的目标头)
  4. 点击发送,就能在响应体里看到你获取到的所有请求头数据了

小提示

  • 如果某个请求头不存在,c.GetHeader()会返回空字符串,你可以根据业务需求做判空处理
  • 如果你需要获取同一个头的多个值,直接用c.Request.Header[key]就能拿到对应的字符串切片

内容的提问来源于stack exchange,提问作者Puneet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:53:44