如何在golang中使用gin包获取邮递员的头数据?

Pun*_*eet 2 go postman go-gin

我想在邮递员中header使用ginpackage(golang)获取数据,但我不知道该怎么做。我用谷歌搜索但没有得到任何答案。任何人都可以帮助我从邮递员那里获取数据我想要获取的数据显示在图像中。 header

图片:-

Shi*_*ore 9

您可以使用c.Request.Header["Token"]. 这是一个示例代码。

package main

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

func main() {
    r := gin.Default()
    r.GET("/test", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "token data": c.Request.Header["Token"],
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}
Run Code Online (Sandbox Code Playgroud)

这是邮递员的示例屏幕截图。 示例截图

  • 这里的令牌是一个标头。它在 go 中定义为 `type Header map[string][]string`,因此对于 `c.Request.Header["Token"]` 你将得到一个 `string` 数组。如果您始终向令牌发送单个值,您可以通过 `c.Request.Header["Token"][0]` 访问它,这将返回一个字符串。 (4认同)

小智 5

我使用这个代码并且工作得很好

  func getProduct(c *gin.Context) {
        token := strings.Split(c.Request.Header["Authorization"][0], " ")[1]
        c.JSON(200, gin.H{"result": "get product", "token": token})
    }
Run Code Online (Sandbox Code Playgroud)

这是测试数据

获取 http://localhost:8081/api/v2/product HTTP/1.1 授权:承载 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNTg4OTI4NzY0LCJleHAiOjE1ODg5MzM3NjR9.GrPK-7u EsfpdAYamoqaDFclYwTZ3LOlspoEXUORfSuY