当访问gin-gonic下面的服务器时,HTTP 客户端应该收到代码 500,但收到的代码是 200。
package main
import (
"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
)
func main() {
gin.SetMode(gin.ReleaseMode)
r := gin.New()
r.Use(gin.Logger())
r.Use(gin.Recovery())
r.Use(gzip.Gzip(gzip.DefaultCompression))
r.POST("/test", func(c *gin.Context) {
panic("test") // Server panic and client should receive code 500.
})
r.Run(":8080")
}
从 HTTP 客户端访问/test时,go server 日志如下所示,看起来返回代码 500。
[GIN] 2020/09/28 - 10:23:14 | 500 | 67.2995ms | ::1 | POST "/test"
2020/09/28 10:23:14 [Recovery] 2020/09/28 - 10:23:14 panic recovered:
test
C:/path/to/myproject/main.go:16 (0x8f193f)
main.func1: panic("test")
但是 HTTP 客户端收到代码 200。
当我删除r.Use(gzip.Gzip(gzip.DefaultCompression))
时,HTTP 客户端会收到代码 500。
为什么客户收到代码 200 r.Use(gzip.Gzip(gzip.DefaultCompression))
,我该如何解决?
慕标琳琳
杨魅力
相关分类