从Apache-httpclient中提取gzip数据而不进行解压缩

tyk*_*yke 4 apache-httpclient-4.x

我正在使用apache httpclient 4.3.5向上游服务器发送请求,该服务器返回一个gzipped响应.我需要将此响应AS-IS传递给下游服务器,而不进行任何形式的解压缩.但是,httpclient太有用了,并坚持解压缩响应,我找不到任何说服它停止的方法.

CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse serverResponse = client.execute(serverRequest);
try {
    HttpEntity entity = serverResponse.getEntity();
    downstreamResponse.setStatus(serverResponse.getStatusLine().getStatusCode());
    for (Header header : serverResponse.getAllHeaders()) {
        downstreamResponse.setHeader(header.getName(), header.getValue());
    }
    entity.writeTo(downstreamResponse.getOutputStream());
    downstreamResponse.flushBuffer();
} finally {
    serverResponse.close();
}
Run Code Online (Sandbox Code Playgroud)

我确信有一些方法可以使用某种形式的构造来配置客户端

return HttpClients.custom()
    ....
    .build();
Run Code Online (Sandbox Code Playgroud)

但我找不到它.请高手指教一下吗?

ok2*_*k2c 10

CloseableHttpClient client = HttpClients.custom()
        .disableContentCompression()
        .build();
Run Code Online (Sandbox Code Playgroud)

  • 一些解释会很好.目前它处于低质量审核队列中 (2认同)
  • 您希望得到什么样的解释?OP特别要求禁用内容压缩的方法,这正是我的回答所展示的 (2认同)
  • 我对在这里玩游戏的兴趣为零。欢迎任何认为我的回复质量低下的人将其删除。 (2认同)
  • 只是提供解释javadoc告诉我:**disableContentCompression()**_Disables自动内容**de**compression._这样清除了 (2认同)