因为网络问题导致http传输过慢记录处理压缩方式
/**
* 将 JSON 字符串进行 GZIP 压缩并 Base64 编码
* @param jsonStr 待压缩的 JSON 字符串
* @return Base64 编码的压缩后字符串
*/
public static String compress(String jsonStr) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
gzipOutputStream.write(jsonStr.getBytes("UTF-8"));
}
return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray());
}
/**
* 解压 Base64 编码的 GZIP 压缩数据,还原为原始 JSON 字符串
* @param base64Data Base64 编码的压缩数据
* @return 原始 JSON 字符串
*/
public static String decompress(String base64Data) throws IOException {
byte[] compressedData = Base64.getDecoder().decode(base64Data);
// 使用 GZIPInputStream 解压
java.io.ByteArrayInputStream byteArrayInputStream = new java.io.ByteArrayInputStream(compressedData);
java.util.zip.GZIPInputStream gzipInputStream = new java.util.zip.GZIPInputStream(byteArrayInputStream);
java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gzipInputStream.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
return out.toString("UTF-8");
}
传输速度提升几十倍 解压缩无感知

被折叠的 条评论
为什么被折叠?



