xml报文传输,使用标准zip算法压缩、解压

本文介绍如何在Java中使用Zip算法对XML报文进行压缩和解压缩,常见于Socket通信中。虽然这种方法常与加密结合,但可能会遇到大内容导致的读取不全问题。
摘要由CSDN通过智能技术生成

如题,我们在对接传统项目的厂商或者机构,通常使用Socket进行传输,他们的api文档往往会有一些特别的要求, 最近就碰到了要求数据通过xml报文进行传输,传输前使用标准zip算法进行流压缩,而在收到回执报文后,需要先解压再解析对应的报文。

网上查了许久找不到参考的代码,特意写出来公开供大家参考。

1、通讯流压缩

	/**
	 * zip压缩
	 * @param byt
	 * @return
	 * @throws IOException 
	 */
	public byte[] compress(byte[] byt) throws IOException {
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		ZipOutputStream zom = null;
		//zip压缩
    	zom = new ZipOutputStream(bos);
    	//设置压缩方法
		zom.setMethod(ZipOutputStream.DEFLATED);
		zom.setEncoding("gbk");
		zom.putNextEntry(new org.apache.tools.zip.ZipEntry("data"));
    	zom.write(byt);
		zom.closeEntry();
	    zom.finish();
		
	    byte[] bytt = bos.toByteArray();
		IOUtils.closeQuietly(zom);
		IOUtils.closeQuietly(bos);
		return bytt;
	}

2、通讯流解压

	/**
	 * zip解压
	 * @param read
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值