【问题标题】:Extracting gzip data from Apache-httpclient without decompression从 Apache-httpclient 中提取 gzip 数据而无需解压
【发布时间】:2015-07-24 19:58:40
【问题描述】:

我正在使用 apache httpclient 4.3.5 向上游服务器发送请求,该服务器返回 gzip 压缩响应。我需要将此响应按原样传递给下游服务器,而无需任何形式的解压缩。但是,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();
}

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

return HttpClients.custom()
    ....
    .build();

但我找不到。请高手指点一下?

【问题讨论】:

    标签: apache-httpclient-4.x


    【解决方案1】:
    CloseableHttpClient client = HttpClients.custom()
            .disableContentCompression()
            .build();
    

    【讨论】:

    • 一些解释会很好。目前它在低质量审查队列中
    • 你期待什么样的解释? OP 专门要求提供一种禁用内容压缩的方法,这正是我的回答所展示的
    • 我在这里玩游戏的兴趣为零。欢迎任何认为我的回复质量低下的人删除它。
    • 这不是游戏的问题。该系统有一个算法来挑选东西以供审查。一个元素是“代码量与非代码量”和“代码量”。实际细节不详。出现在低质量审核队列中并不意味着帖子质量低(当自动到达那里时)它断言如果它不是低质量则需要人工干预。有些人,为了更快地获得徽章,只需点击删除。我没有,但我发表评论。如果你觉得我的行为是在玩游戏,我很抱歉(不清楚)。
    • 只是为了提供 javadoc 告诉我的解释:disableContentCompression() 禁用自动内容de压缩。 这样就清楚了到了
    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    相关资源
    最近更新 更多