Java 如何获取HttpURLConnection中的总字节数(解压缩)

Java 如何获取HttpURLConnection中的总字节数(解压缩),java,android,Java,Android,因为服务器返回压缩大小(gzip)的内容类型。 我无法获得制作进度条的正确字节总数 使用这两种方法只能得到zip大小的内容长度 pTransfer.getContentLength(); pTransfer.getHeaderField("Content-Length"); 是否有其他方法可以获得正确的大小?在我看来,如果不复制并解压缩,就不可能知道。有些东西可以比其他东西压缩得更好,可以使用不同的压缩级别。甚至可能存在压缩。那么有没有办法读取getInputStream()中的实际commp

因为服务器返回压缩大小(gzip)的内容类型。 我无法获得制作进度条的正确字节总数

使用这两种方法只能得到zip大小的内容长度

pTransfer.getContentLength();
pTransfer.getHeaderField("Content-Length");

是否有其他方法可以获得正确的大小?

在我看来,如果不复制并解压缩,就不可能知道。有些东西可以比其他东西压缩得更好,可以使用不同的压缩级别。甚至可能存在压缩。

那么有没有办法读取getInputStream()中的实际commpressed字节?请看,您是否建议使用URLConnection,我可以读取HttpURLConnection没有被GZIPInputStream解压的原始字节?我将使用
new BufferedInputStream(new GZIPInputStream(url.openStream()));。我想这应该行得通,但我必须向服务器(POST)发送一些数据才能获得所需的流。直接从url打开流是不起作用的。进度条不需要正确的总数。只需使用100%,并通过解压缩代码测量压缩流的消耗量。他们大概会在同一时间到达终点,我不明白。我该怎么做?我是初学者:\