@@ -17,13 +17,13 @@ public class CompressedEntity implements HttpEntity {
1717 private HttpEntity httpEntity ;
1818 private final boolean isResponse ;
1919 private final CompressorStreamFactory compressorStreamFactory ;
20- private final String contentEncoding ;
20+ private final String compressionAlgo ;
2121
22- CompressedEntity (HttpEntity httpEntity , boolean isResponse , CompressorStreamFactory compressorStreamFactory , String contentEncoding ) {
22+ CompressedEntity (HttpEntity httpEntity , boolean isResponse , CompressorStreamFactory compressorStreamFactory ) {
2323 this .httpEntity = httpEntity ;
2424 this .isResponse = isResponse ;
2525 this .compressorStreamFactory = compressorStreamFactory ;
26- this .contentEncoding = contentEncoding ;
26+ this .compressionAlgo = getCompressionAlgoName ( httpEntity . getContentEncoding ()) ;
2727 }
2828
2929 @ Override
@@ -38,7 +38,7 @@ public InputStream getContent() throws IOException, UnsupportedOperationExceptio
3838 }
3939
4040 try {
41- return compressorStreamFactory .createCompressorInputStream (contentEncoding , httpEntity .getContent ());
41+ return compressorStreamFactory .createCompressorInputStream (compressionAlgo , httpEntity .getContent ());
4242 } catch (CompressorException e ) {
4343 throw new IOException ("Failed to create decompressing input stream" , e );
4444 }
@@ -52,7 +52,7 @@ public void writeTo(OutputStream outStream) throws IOException {
5252 }
5353
5454 try {
55- httpEntity .writeTo (compressorStreamFactory .createCompressorOutputStream (contentEncoding , outStream ));
55+ httpEntity .writeTo (compressorStreamFactory .createCompressorOutputStream (compressionAlgo , outStream ));
5656 } catch (CompressorException e ) {
5757 throw new IOException ("Failed to create compressing output stream" , e );
5858 }
@@ -97,4 +97,14 @@ public boolean isChunked() {
9797 public Set <String > getTrailerNames () {
9898 return httpEntity .getTrailerNames ();
9999 }
100+
101+ private String getCompressionAlgoName (String contentEncoding ) {
102+ String algo = contentEncoding ;
103+ if (algo .equalsIgnoreCase ("gzip" )) {
104+ algo = CompressorStreamFactory .GZIP ;
105+ } else if (algo .equalsIgnoreCase ("lz4" )) {
106+ algo = CompressorStreamFactory .LZ4_FRAMED ;
107+ }
108+ return algo ;
109+ }
100110}
0 commit comments