web-services - 来自 Play Framework 的 WSClient 的 gzip 请求

标签 web-services http playframework ws-client

我正在尝试使用来自 Play Framework 的 WSClient API 调用网络服务。 主要问题是我想在不超过最大有效载荷大小的情况下传输巨大的 JSON 有效载荷(超过 2MB)。

为此,我想使用 gzip(使用 HTTP header Content-Encoding: gzip)压缩请求。在documentation , 提到了参数 play.ws.compressionEnabled ,但它似乎只启用了 WSResponse 压缩。

我曾尝试手动压缩负载(使用 GZipOutputStream)并放置 header Content-Encoding:gzip,但服务器抛出一个 io.netty.handler.codec。 compression.DecompressionException:GZIP header 中不支持的压缩方法 191

我怎样才能正确压缩我的请求?

提前致谢

最佳答案

不幸的是,我不认为你可以压缩请求(底层库 Netty 不支持它)。您可以在 https://github.com/AsyncHttpClient/async-http-client/issues/93 中找到更多信息和 https://github.com/netty/netty/issues/2132

关于web-services - 来自 Play Framework 的 WSClient 的 gzip 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929570/

相关文章:

web-services - 多个请求的服务持久化

c# - JSON stringify 到 C# Webservice

java - CORS 工作的 GWT HTTP 请求响应代码 0

c# - 如何从位置参数中隐藏 IP 作为响应

android - Android Volley 的 onResponse 方法未执行

ios - 使用 Monotouch 和 iOS 从服务中提取数据 (JSON) 的理想方式?

java - Android Sqlite - 无法在 onCreate 之外调用数据库处理程序

postgresql - 玩框架postgresql : Database 'default' needs evolution

playframework - 运行Play 2.5.x的警告消息

css - 如何将 HTML5 Boilerplate 与 Twitter Bootstrap 正确集成?