使用GZIP和RestTemplate

问题描述 投票:1回答:1

我想将gzip用于我的请求和来自服务器的响应以节省带宽。我的服务器支持100%gzip格式。到目前为止我做了什么:

HttpHeaders headers = new HttpHeaders();
        headers.add("Authorization", myAuthorization());
headers.add(HttpHeaders.ACCEPT_ENCODING, "GZIP");
headers.setContentType(MediaType.APPLICATION_JSON);

HttpEntity<MyParameters> request = new HttpEntity<>(parameters, headers);

ResponseEntity<? extends MyResponseRaw> response = restTemplate.exchange(url, HttpMethod.POST,
                    request, myResponse.getClass());

我在请求标题中添加了一个标记,其中“Accept-Encoding”为“GZIP”。但是当我从服务器检入响应对象时,它仍然发送一个普通对象,而不是zip对象,并且在其标题中没有“Content-Encoding”:“GZIP”。

我不知道我是否在这里犯了任何错误,或者我是否需要将我的请求压缩为gzip格式?任何人都可以纠正我吗?

spring gzip resttemplate
1个回答
1
投票

已启用gzip压缩?

如果没有,请将其放在您的属性中:

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css

添加标头只修改了请求的标头,它不会自动进行压缩。

浏览器应该发送接受gzip标头。所以服务器知道它可以压缩客户端的答案。但我认为你不需要自己添加标题。浏览器应该自动执行,spring会自动执行。只需在弹簧侧启用压缩。

© www.soinside.com 2019 - 2024. All rights reserved.