Version: 1.5.x

Gzip解压

Gzip是现在一种流行的文件压缩算法,有相当广泛的应用范围。尤其是当Gzip用来压缩存文本文件的时候效果尤为明显,大概能减少70%以上的文件大小(具体多少取决于文件中的内容)。

现有的很多HTTP服务器系统都支持Gzip,如Apache、PHP等,经过这些服务压缩过的数据可以降低网络传输的流量,提高客户端的响应速度。

Forest从1.5.2-BETA版本开始支持Gzip的解压,其解压的方式也很简单,在方法或接口类上加上 @DecompressGzip 注解即可。

/**
* 为请求方法添加Gzip解压能力
*/
@Get("/transaction")
@DecompressGzip
String transaction(String infno);

或者在接口上

/**
* 在接口类上添加 DecompressGzip 注解,
* 就是为该接口的所有方法增加Gzip解压的能力
*/
@BaseRequest(baseURL = "${baseUrl}")
@DecompressGzip
public interface GzipClient2 {
/**
* 进行Gzip解压
*/
@Get("/transaction1")
String transaction1(String infno);
/**
* 进行Gzip解压
*/
@Get("/transaction2")
String transaction2(String infno);
}

如果在一个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();
}
Last updated on