Rest 如何在SpringBoot中读取POST请求中的gzip负载

Rest 如何在SpringBoot中读取POST请求中的gzip负载,rest,spring-boot,post,java-8,gzip,Rest,Spring Boot,Post,Java 8,Gzip,我需要在接受json数据的SPringBoot应用程序中读取POST请求中的Gzip json负载。如何做到这一点以保持应用程序的通用性,因为将来可能会有其他客户端以纯json或其他压缩格式发送数据?我想这应该由服务器本身来处理,那么有没有任何方法可以指示嵌入式Tomcat解压负载 我的SpringBoot应用程序运行在嵌入式Tomcat 9.0.17上 控制器在POST请求中接受JSON负载 @RequestMapping(value = "/update/v1", method = Requ

我需要在接受json数据的SPringBoot应用程序中读取POST请求中的Gzip json负载。如何做到这一点以保持应用程序的通用性,因为将来可能会有其他客户端以纯json或其他压缩格式发送数据?我想这应该由服务器本身来处理,那么有没有任何方法可以指示嵌入式Tomcat解压负载

我的SpringBoot应用程序运行在嵌入式Tomcat 9.0.17上

控制器在POST请求中接受JSON负载

@RequestMapping(value = "/update/v1", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
    public ResponseEntity<String> receiveUpdates(@RequestBody String update) {

如果我将我的消费类型更改为MediaType.ALL_值,我的控制器将开始接收请求,但负载本身是gzip的。我可以在我的服务层处理它,但这会使它特定于gzip数据

这个问题可以通过引入一个过滤器来处理gzip负载来解决


但是我相信应该有一种方法来指导Tomcat处理这个问题,并提供解压数据。

你可能可以在Tomcat级别(不确定)这样做——谷歌搜索可以从字面上揭示数百万个答案;但是为什么不通过一个过滤器呢?嘿,尤金,如果没有其他的东西,那么我将不得不通过过滤器来做,但是如果服务器可以处理开箱即用的话,那么它将节省一些代码复杂性。我不知道有多少人,但在谷歌上找不到任何答案。无论我发现什么,要么是关于独立服务器,而不是嵌入式服务器,要么只是关于响应的压缩。你能告诉我一些有用的链接吗?真的很抱歉,当我搜索
tomcat gzip
时,我得到了
586.000
结果。这些都对您没有帮助吗?这个答案似乎提供了可以在spring引导中使用的过滤代码,以保持应用程序的通用性@Eugene,这些结果主要是关于压缩API响应。
'error': 'Unsupported Media Type', 'message': "Content type '' not supported"