我是靠谱客的博主 雪白毛豆,这篇文章主要介绍SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(手动版),现在分享给大家,希望可以做个参考。

前端代码

复制代码
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
decode(encodedData) { var strData = atob(encodedData) // Convert binary string to character-number array var charData = strData.split('').map(function(x) { return x.charCodeAt(0) }) // Turn number array into byte-array var binData = new Uint8Array(charData) // unzip var data = pako.inflate(binData) strData = this.Utf8ArrayToStr(data) return strData }, Utf8ArrayToStr(array) { var out, i, len, c var char2, char3 out = '' len = array.length i = 0 while (i < len) { c = array[i++] switch (c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: // 0xxxxxxx out += String.fromCharCode(c) break case 12: case 13: // 110x xxxx 10xx xxxx char2 = array[i++] out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f)) break case 14: // 1110 xxxx 10xx xxxx 10xx xxxx char2 = array[i++] char3 = array[i++] out += String.fromCharCode(((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0)) break } } return out }
  • Utf8ArrayToStr 这个方法和网上很多的 Utf8Array 不同在于,这里还解决了URL中文乱码的问题噢~

后端代码

复制代码
1
2
byte[] gzipService = ZipUtil.gzip((JSON.toJSONString(service)), "UTF-8"); return ResultUtil.buildSuccByData(service);
  • 后端这里使用了 Hutool 框架自带的方法。

注意事项

  • 需要用 GZIP 必须是 GET 请求,以后这中返回数据量大的接口,只要不涉及到敏感信息,务必使用GET请求,这样可以省好多事。

最后

以上就是雪白毛豆最近收集整理的关于SpringBoot - 前后端大数据压缩传输 Gzip 解决方案(手动版)的全部内容,更多相关SpringBoot内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部