spring-android - 使用 Spring Android RestTemplate 发送 Gzip 压缩数据?

标签 spring-android

当前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/

相关文章:

java.lang.IllegalArgumentException : Illegal character in scheme at index 0: localhost 异常

带代理的 Android Spring RestTemplate

gradle - 错误: Gradle: Duplicate files during packaging of APK

gson - Robospice 不可能在没有服务的情况下启动 SpiceManager

android - 用于SpringAndroid库的Android Proguard配置

android - 服务器重新启动时出现restTemplate ResourceAccessException

java - Spring(适用于 Android)和 Jackson2 : PUT as application/x-www-form-urlencoded

Android Studio + Gradle : java. lang.IllegalArgumentException

android - 通过 RestTemplate 发送多部分文件

java - 带有参数的 Spring RestTemplate HTTP Post 导致 400 bad request 错误