HTTPCLIENT-2376: fixed ContentCompressionExec not taking `acceptEncoding` parameter into account
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
index acb62b2..ac3cd5a 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
@@ -86,16 +86,19 @@ public ContentCompressionExec(
final Lookup<InputStreamFactory> decoderRegistry,
final boolean ignoreUnknown) {
- final boolean brotliSupported = BrotliDecompressingEntity.isAvailable();
- final List<String> encodings = new ArrayList<>(4);
- encodings.add("gzip");
- encodings.add("x-gzip");
- encodings.add("deflate");
- if (brotliSupported) {
- encodings.add("br");
+ final boolean brotliSupported = decoderRegistry == null && BrotliDecompressingEntity.isAvailable();
+ if (acceptEncoding != null) {
+ this.acceptEncoding = MessageSupport.headerOfTokens(HttpHeaders.ACCEPT_ENCODING, acceptEncoding);
+ } else {
+ final List<String> encodings = new ArrayList<>(4);
+ encodings.add("gzip");
+ encodings.add("x-gzip");
+ encodings.add("deflate");
+ if (brotliSupported) {
+ encodings.add("br");
+ }
+ this.acceptEncoding = MessageSupport.headerOfTokens(HttpHeaders.ACCEPT_ENCODING, encodings);
}
- this.acceptEncoding = MessageSupport.headerOfTokens(HttpHeaders.ACCEPT_ENCODING, encodings);
-
if (decoderRegistry != null) {
this.decoderRegistry = decoderRegistry;
} else {
@@ -108,8 +111,6 @@ public ContentCompressionExec(
}
this.decoderRegistry = builder.build();
}
-
-
this.ignoreUnknown = ignoreUnknown;
}