当前Spring Android documentation第 2.2.2 节中说:
RestTemplate supports sending and receiving data encoded with gzip compression.
但是,本文档在第 2.7.2 节中解释了如何接收 Gzip 数据,但没有介绍如何发送 gzip 数据(使用 POST 或 PUT)。是否由于缺少功能,所以介绍会是错误的?或者有什么 secret 方法可以启用 gzip 压缩吗?
最佳答案
请求上的 GZip 压缩基于 RestTemplate 处理的请求的“Content-Encoding” header 。将此 header 设置为“gzip”将为您的请求启用 Gzip 压缩。幸运的是,有一些常量和辅助函数可以使这变得简单:
HttpHeaders headers = new HttpHeaders();
headers.setContentEncoding(ContentCodingType.GZIP);
//...then use headers when making request with RestTemplate instance
使用ClientHttpRequestInterceptor
时要小心启用 Gzip 压缩,因为这将多次压缩您的请求正文(取决于您配置的拦截器数量),如下所述:
RestTemplate with ClientHttpRequestInterceptor causes GZIP compression twice
关于spring-android - 使用 Spring Android RestTemplate 发送 Gzip 压缩数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446912/