Responese中的Content-Encoding为br的解码

某音最近更新了,修改了Content-Encoding,之前默认gzip或者是没有压缩,现在更新了加了br压缩算法。
gzip的之前有发,具体的可以看一下照抄即可。。。

maven添加

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/org.brotli/dec -->
<dependency>
<groupId>org.brotli</groupId>
<artifactId>dec</artifactId>
<version>0.1.2</version>
</dependency>

1
2
3
4
5
6
7
8
9
10
11
12
13
ByteArrayInputStream input = new ByteArrayInputStream(reqContent);
ByteArrayOutputStream output = new ByteArrayOutputStream();
BrotliInputStream brotliInput = new BrotliInputStream(input);
byte[] buffer = new byte[65536];
while (true) {
int len = brotliInput.read(buffer, 0, buffer.length);
if (len <= 0) {
break;
}
output.write(buffer, 0, len);
}
brotliInput.close();
output.toByteArray();

建议按这种一次性读取,分次读取的话,我这边会出现bug,可能是读取的顺序出了点问题。以上demo可以直接跑。reqContent为影响的字节流数组,output.toByteArray()返回的即为解压之后的字节数组。

谢谢,爱你么么哒