【发布时间】:2023-03-21 11:47:01
【问题描述】:
我试图在新的 Java HTTP 客户端中找到有关处理压缩的任何提及,但失败了。是否有内置配置可以处理,例如gzip 或 deflate 压缩?
我希望有一个BodyHandler,例如像这样:
HttpResponse.BodyHandlers.ofGzipped(HttpResponse.BodyHandlers.ofString())
但我没有看到。我也没有在HttpClient 中看到任何配置。我是不是找错地方了,还是故意没有实现并推迟到支持库?
【问题讨论】:
-
你试过查看网络日志吗?如果客户端附加标头
Accept-Encoding: gzip它支持它。请注意,您在应用程序端和 http 客户端的网络端获得的标头通常是不同的。 -
通过一些文档觉得这可能与问题HPACK (Header Compression for HTTP/2) implementation有关。 Indexing Tables used in compression 上的详细信息确实在 Appendix 中提到了您的示例压缩标题。
-
@patrickf 实际上我添加了这样的标题并且很惊讶我得到了未压缩的内容
-
@RomainHippeau 它是如何重复的?您链接的问题是关于 apache http 客户端的问题,而我的问题是关于 Java http 客户端(嵌入在 Java 11 中的客户端),请注意标签。
标签: java java-11 java-http-client