如何GZIP压缩Go中的http请求?

Kyl*_*ndt 12 gzip go

我的申请被拒绝.但是,当我蜷缩这是工作数据,所以它似乎还有的地方,我很困惑与如何去压缩该HTTP有效载荷.

    var buf bytes.Buffer
    g := gzip.NewWriter(&buf)
    g.Write([]byte("apples")
    req, err := http.NewRequest("POST", q.host, bytes.NewReader(buf.Bytes()))
    ...
    req.Header.Set("Content-Type", "text/plain")
    req.Header.Set("Content-Encoding", "gzip")
    resp, err := client.Do(req)
Run Code Online (Sandbox Code Playgroud)

有人看到我错了吗?

Kyl*_*ndt 9

看起来主要问题是我需要关闭gzip Writer:

b, err := batch.Json()
....
var buf bytes.Buffer
g := gzip.NewWriter(&buf)
if _, err = g.Write(b); err != nil {
    slog.Error(err)
    return
}
if err = g.Close(); err != nil {
    slog.Error(err)
    return
}
req, err := http.NewRequest("POST", q.host, &buf)
Run Code Online (Sandbox Code Playgroud)