Joe*_*oel 12 java http content-encoding http-compression
应该使用什么InputStream类型来处理将HTTP Content-Encoding设置为deflate的 URLConnection流?
对于gzip或zip的Content-Encoding,我使用GZIPInputStream,没问题.
对于"deflate"的Content-Encoding,我尝试过使用InflaterInputStream和DeflaterInputStream,但是我得到了
java.util.zip.ZipException:java.util.zip.InflaterInputStream.read中的未知压缩方法(InflaterInputStream.java:147)
我的理解是"deflate"编码是指Zlib压缩,根据文档,这应该由InflaterInputStream处理.
Gro*_*uez 22
在HTTP/1.1,Content-encoding: deflate实际上指的是DEFLATE压缩算法,如通过定义RFC 1951,包裹在ZLIB数据格式,通过限定RFC 1950.
然而,一些供应商只是实现了RFC 1951定义的DEFLATE算法,完全忽略了RFC 1950(没有zlib头文件).
其他人也遇到了同样的问题:
为了解决这个问题,尝试实例化使用参数设置创建的InflaterInputStream传递:Inflaternowraptrue
in = new InflaterInputStream(conn.getInputStream()), new Inflater(true));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15369 次 |
| 最近记录: |