小编B25*_*255的帖子

在Spring Boot REST应用程序中处理gzip压缩请求

我有一个Spring Boot REST应用程序(1.5.6.RELEASE).我想gzip压缩传入和传出.根据这个文档https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html我已经设置

server.compression.enabled=true
server.compression.mime-types=...
Run Code Online (Sandbox Code Playgroud)

但这似乎只适用于从我的服务gzipping响应(这就是文档实际上说的"#如果启用了响应压缩.").

我的问题是传入的gzip压缩请求没有被解压缩,导致JSON解析错误.

有谁知道如何在我的Spring Boot应用程序中打开请求解压缩?

编辑一个例子:

POM片段:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

控制器代码:

@RestController
public class Controller {
    @RequestMapping(value = "/", method = RequestMethod.POST, consumes = "application/json")
    public String post(@RequestBody Map<String, String> request) {
        return request.get("key");
   }
}
Run Code Online (Sandbox Code Playgroud)

使用curl测试:

$ echo '{ "key":"hello" }' > body
$ curl -X POST -H "Content-Type: application/json" --data-binary @body http://localhost:8080 # prints 'hello'
$ echo '{ "key":"hello" }' | gzip > …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-boot

8
推荐指数
1
解决办法
4247
查看次数

标签 统计

java ×1

rest ×1

spring ×1

spring-boot ×1