SpringBoot自动解压Gzip请求

SpringBoot automatically decompression gzip requests

目前Spring官方内置自动GZIP的解压,仅支持Undertow容器和Jetty容器

Server端自动解压GZIP报文

在server端增加如下配置:

Undertow容器

    @Bean
    public UndertowServletWebServerFactory undertowServletWebServerFactory() {
        UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();
        factory.addDeploymentInfoCustomizers((deploymentInfo) -> {
            deploymentInfo.addInitialHandlerChainWrapper(handler -> new RequestEncodingHandler(handler)
                    .addEncoding("gzip", GzipStreamSourceConduit.WRAPPER));
        });
        return factory;
    }

Jetty容器

@Bean
public JettyServletWebServerFactory jettyServletWebServerFactory() {
    JettyServletWebServerFactory factory = new JettyServletWebServerFactory();
    factory.addServerCustomizers(server -> {
        GzipHandler gzipHandler = new GzipHandler();
        gzipHandler.setInflateBufferSize(1);
        gzipHandler.setHandler(server.getHandler());

        HandlerCollection handlerCollection = new HandlerCollection(gzipHandler);
        server.setHandler(handlerCollection);
    });
    return factory;
}

注:请求端增加 Header -> content-encoding=gzip

Client端发送GZIP请求

​​​​​​​https://blog.csdn.net/longsky886/article/details/124828008https://blog.csdn.net/longsky886/article/details/124828008

参考

https://www.baeldung.com/spring-resttemplate-compressing-requests

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值