java http 压缩_解压HTTP API的GZIP压缩数据

1.对Java后端的请求HttpURLConnection对象中的消息头设置压缩

connection.setRequestProperty("Accept-Encoding", "gzip, deflate");

2.发送请求后获取response中的content-encoding

connection.getContentEncoding(); // 获取content-encoding

3.如果content-encoding == gzip,则将获取到的字节流转为字节数组(压缩),然后再将字节数组解压

public static byte[] uncompresss(byte[] bytes) throws Exception {

ByteArrayOutputStream out = new ByteArrayOutputStream();

ByteArrayInputStream in = new ByteArrayInputStream(bytes);

GZIPInputStream gzip = new GZIPInputStream(in);

byte[] buffer = new byte[1024];

int n;

while((n = gzip.read(buffer)) >= 0) {

out.write(buffer, 0, n);

}

return out.toByteArray();

}

gzip压缩字符串为字节数组

/**

* 将字符串进行gzip压缩,输出压缩后的字节数组

*/

public static byte[] compres

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!感谢您的提问。 在 Java 中使用 pako.js 库实现 gzip压缩解压是不可行的,因为 pako.js 是一个 JavaScript 库,无法直接在 Java 中使用。 Java 中实现 gzip压缩解压有多种方法,其中常用的是使用 java.util.zip 包中的 GZIPOutputStream 和 GZIPInputStream 类来进行压缩解压。 下面是一个示例代码,展示如何使用 GZIPOutputStream 和 GZIPInputStream 类来进行 gzip压缩解压: ```java import java.io.*; import java.util.zip.*; public class GzipExample { public static void gzipCompress(String inputFileName, String outputFileName) throws IOException { FileInputStream fileInputStream = new FileInputStream(inputFileName); FileOutputStream fileOutputStream = new FileOutputStream(outputFileName); GZIPOutputStream gzipOutputStream = new GZIPOutputStream(fileOutputStream); byte[] buffer = new byte[1024]; int len; while ((len = fileInputStream.read(buffer)) > 0) { gzipOutputStream.write(buffer, 0, len); } gzipOutputStream.close(); fileOutputStream.close(); fileInputStream.close(); } public static void gzipDecompress(String inputFileName, String outputFileName) throws IOException { FileInputStream fileInputStream = new FileInputStream(inputFileName); GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream); FileOutputStream fileOutputStream = new FileOutputStream(outputFileName); byte[] buffer = new byte[1024]; int len; while ((len = gzipInputStream.read(buffer)) > 0) { fileOutputStream.write(buffer, 0, len); } fileOutputStream.close(); gzipInputStream.close(); fileInputStream.close(); } public static void main(String[] args) throws IOException { String inputFileName = "input.txt"; String compressedFileName = "compressed.gz"; String decompressedFileName = "decompressed.txt"; gzipCompress(inputFileName, compressedFileName); gzipDecompress(compressedFileName, decompressedFileName); } } ``` 这段代码中,gzipCompress() 方法用于将输入文件压缩gzip 格式的输出文件,gzipDecompress() 方法用于将 gzip 格式的输入文件解压为普通的文本文件。 希望这个示例能够帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值