小编use*_*499的帖子

Golang 中的服务器头中间件

我正在尝试在每个响应上设置服务器标头。我正在尝试使用Gin 中间件来实现这一目标。但是,由于某种原因,这不会设置标头。到目前为止,我已经尝试对此进行调试,但我无法理解为什么这不起作用。也许我在这里遗漏了一些东西。

\n\n

这是代码

\n\n
package main\n\nimport "fmt"\nimport "github.com/gin-gonic/gin"\n\nconst SERVER_INFO = "Some-Play-Server"\n\ntype ServerHeader struct {\n    gin.ResponseWriter\n    ServerInfo string\n}\n\nfunc (w *ServerHeader) Write(data []byte) (int, error) {\n    if w.Header().Get("Server") == "" {\n        w.Header().Add("Server", w.ServerInfo)\n    }\n\n    return w.ResponseWriter.Write(data)\n}\n\nfunc InitServerHeader() gin.HandlerFunc {\n    return func(c *gin.Context) {\n        writer := &ServerHeader{c.Writer, SERVER_INFO}\n        c.Writer = writer\n        c.Next()\n    }\n}\n\nfunc main() {\n    mux := gin.Default()\n    mux.Use(InitServerHeader())\n    mux.GET("/", func(c *gin.Context) {\n        c.String(200, "OK")\n    })\n\n    fmt.Println("Server Listening on 0.0.0.0:8080")\n    mux.Run(":8080")\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

而且,这是测试输出

\n\n
\xe2\x9d\xaf curl -v http://localhost:8080/\n* About to …
Run Code Online (Sandbox Code Playgroud)

http go http-headers

4
推荐指数
1
解决办法
8472
查看次数

标签 统计

go ×1

http ×1

http-headers ×1