🍔 Gzip解压
Gzip是现在一种流行的文件压缩算法,有相当广泛的应用范围。尤其是当Gzip用来压缩存文本文件的时候效果尤为明显,大概能减少70%以上的文件大小(具体多少取决于文件中的内容)。
现有的很多HTTP服务器系统都支持Gzip,如Apache、PHP等,经过这些服务压缩过的数据可以降低网络传输的流量,提高客户端的响应速度。
# @DecompressGzip 注解
Forest从1.5.2-BETA
版本开始支持Gzip的解压,其解压的方式也很简单,在方法或接口类上加上 @DecompressGzip
注解即可。
/**
* 为请求方法添加Gzip解压能力
*/
@Get("/transaction")
@DecompressGzip
String transaction(String infno);
1
2
3
4
5
6
7
2
3
4
5
6
7
或者在接口上
/**
* 在接口类上添加 DecompressGzip 注解
* 就是为该接口的所有方法增加Gzip解压的能力
*/
@BaseRequest(baseURL = "${baseUrl}")
@DecompressGzip
public interface GzipClient2 {
/**
* 进行Gzip解压
*/
@Get("/transaction1")
String transaction1(String infno);
/**
* 进行Gzip解压
*/
@Get("/transaction2")
String transaction2(String infno);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
如果在一个Gzip解压的接口中,有一两个请求方法不需要Gzip,也一样可以通过 @DecompressGzip(false)
注解方式进行屏蔽,其中注解的value
参数代表Gzip解压的开关,true
为打开,false
为关闭。
/**
* 在接口类上添加 DecompressGzip 注解,
* 就是为该接口的所有方法增加Gzip解压的能力
*/
@BaseRequest(baseURL = "${baseUrl}")
@DecompressGzip
public interface GzipClient2 {
/**
* 进行Gzip解压
*/
@Get("/transaction1")
String transaction1(String infno);
/**
* 进行Gzip解压
*/
@Get("/transaction2")
String transaction2(String infno);
/**
* 该方法的@DecompressGzip(false)注解表示此请求不用进行Gzip解压
*/
@Get("/none-gzip")
@DecompressGzip(false)
String noneGzip();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
帮助我们改善此文档 (opens new window)
上次更新: 2023/06/19, 17:37:19