将 gzip 添加到 spring 嵌入式 tomcat

Adding gzip to spring embedded tomcat

我正在尝试将 gzip 压缩添加到我的服务器(读取和写入)我已经尝试过(spring 启动):

server.tomcat.compression=on
server.tomcat.compressableMimeTypes=application/json,application/xml,text/html,text/xml,text/plain

但是当我的客户发送时:

        GZIPOutputStream gzip = new GZIPOutputStream(baos);
        gzip.write(content.getBytes(Charset.forName("UTF8")));
        gzip.close();

与 headers :

        Accept-Encoding" - "gzip"
        "Content-Encoding" -  "gzip"

数据到达服务时仍处于压缩状态。 我错过了什么?

确保您的客户端发送正确的 Content-Encoding header,否则 Tomcat 将不知道需要解压缩。参见 this answer for details

我最终使用了现有的过滤器:

  <dependency>
        <groupId>net.sourceforge.pjl-comp-filter</groupId>
        <artifactId>pjl-comp-filter</artifactId>
        <version>1.7</version>
    </dependency>

并为其添加了一个 bean (new CompressingFilter())

如果有人遇到同样的问题或知道为什么它不能与 spring 启动配置一起工作,我很想知道。