https://www.cnblogs.com/chaselogs/p/9399526.html
// 中间件func middleware() gin.HandlerFunc {return func(c *gin.Context) {t := time.Now()c.Set("example", "123456")// c.Next()后就执行真实的路由函数,路由执行完成之后接着走time.Since(t)c.Next()// 从time.Now()到目前为止过了多长时间latency := time.Since(t)log.Print("--", latency)// gin设置响应头,设置跨域c.Header("Access-Control-Allow-Origin", "*")c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")c.Header("Access-Control-Allow-Headers", "Action, Module, X-PINGOTHER, Content-Type, Content-Disposition")//设置中间件的响应头,路由的响应头可以在路由返回中设置,参考/ping// c.Writer.WriteHeader(http.StatusMovedPermanently)status := c.Writer.Status()log.Println("==", status)}}func middle(c *gin.Context) {example := c.MustGet("example").(string)log.Println(example)}func main() {r := gin.Default()//中间件,只有在中间件之后注册的路由才会走中间件r.Use(middleware())//http://localhost:8081/middler.GET("/middle", middle)r.Run(":8081")}
