从 Apache-httpclient 中提取 gzip 数据而不解压
Extracting gzip data from Apache-httpclient without decompression
我正在使用 apache httpclient 4.3.5 向上游服务器发送请求,其中 returns 是一个压缩响应。我需要将此响应按原样传递给下游服务器,而无需任何形式的解压缩。但是,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();
但我找不到它。能否请专家指教?
CloseableHttpClient client = HttpClients.custom()
.disableContentCompression()
.build();
我正在使用 apache httpclient 4.3.5 向上游服务器发送请求,其中 returns 是一个压缩响应。我需要将此响应按原样传递给下游服务器,而无需任何形式的解压缩。但是,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();
但我找不到它。能否请专家指教?
CloseableHttpClient client = HttpClients.custom()
.disableContentCompression()
.build();