gin 里面有解码客户端 gzip 数据的中间件吗?

2020-06-22 16:00:17 +08:00
 guonaihong

问题

为了压缩流量,打算对 http.Client 发出的数据包进行压缩,客户端经过 gzip 压缩的 http 请求发给 gin,想知道 gin 里面有解码 gzip 的中间件(解码就是把 gizp 数据包还原成普通包)? 现有的中间件都是对 response 进行编码操作。没有的话,就自己鲁个。

1526 次点击
所在节点    Go 编程语言
5 条回复
useben
2020-06-22 16:11:29 +08:00
```go
package main

import (
"fmt"
"net/http"
"time"

"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
)

func main() {
r := gin.Default()
r.Use(gzip.Gzip(gzip.DefaultCompression))
r.GET("/ping", func(c *gin.Context) {
c.String( http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix()))
})

// Listen and Server in 0.0.0.0:8080
r.Run(":8080")
}
```

官方提供 middleware
guonaihong
2020-06-22 16:17:28 +08:00
@useben 感谢,我看过这个中间件的源代码,他是对响应结果进行压缩的,他是把普通包变为 gzip 。我要的是解码,把 gzip 包,变为普通包。
kappa
2020-06-22 16:26:06 +08:00
guonaihong
2020-06-22 16:32:17 +08:00
@kappa 感谢。看测试代码是可以。
guonaihong
2020-06-22 16:32:43 +08:00
@useben 感谢,原来实现在另外一个文件里面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683793

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX