访问一个不存在的路径返回404,统一异常
来源:25-3 登录逻辑完善

难猿
2020-12-03
访问一个不存在的请求或一个不存在的路径返回Json而不是404怎么弄
比如:上面POST请求我使用GET访问这个时候返回404,我在网上找了一下资料写了中间件还是不行,参考了这个文章:https://blog.csdn.net/u014155085/article/details/106733391 还是不行。老师需要火力支援。
写回答
1回答
-
package main import ( "fmt" "net/http" "time" "github.com/gin-gonic/gin" ) func MyLogger() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() c.Set("example", "123456") //让原本改执行的逻辑继续执行 c.Next() end := time.Since(t) fmt.Printf("耗时:%V\n", end) status := c.Writer.Status() fmt.Println("状态", status) } } func Hook404() gin.HandlerFunc { return func(c *gin.Context) { c.Next() status := c.Writer.Status() if status == 404 { c.JSON(http.StatusOK, gin.H{ "msg": "页面找不到", }) } } } func main() { router := gin.Default() //使用logger和recovery中间件 全局所有 router.Use(Hook404()) router.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "pong", }) }) router.Run(":8083") }
可以通过组件来拦截返回状态码
132020-12-05
相似问题
用户服务中的“创建用户”处理异常的方式
回答 1
相对路径和绝对路径的统一问题
回答 1
怎样去捕获全局的未知异常啊?
回答 2
关于线程和协程的一个疑问
回答 1
中级Python开发后续的发展问题
回答 2