首页 > 代码库 > 使用GZIP压缩接口的报文,达到节省流量的目的。
使用GZIP压缩接口的报文,达到节省流量的目的。
GzipUtil 压缩和加压工具
/** * 压缩字符串 * @param str * @param charest * @return * @throws IOException * @throws UnsupportedEncodingException */ public static byte[] compress(String str,String charset) throws IOException, UnsupportedEncodingException { Assert.notNull(str, " null compress error "); ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip = new GZIPOutputStream(out); try{ gzip.write(str.getBytes(charset)); gzip.close(); return out.toByteArray(); }catch(Exception e){ throw new IOException(e); }finally{ FileUtil.close(gzip); FileUtil.close(out); } }
/** * 解压缩字符串 * @param str * @param charest * @return * @throws IOException * @throws UnsupportedEncodingException * @throws FileNotFoundException */ public static byte[] uncompress(InputStream in)throws IOException, UnsupportedEncodingException,FileNotFoundException { ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPInputStream gunzip = new GZIPInputStream(in); try{ byte[] buffer = new byte[256]; int n; while ((n = gunzip.read(buffer)) >= 0) { out.write(buffer, 0, n); } return out.toByteArray(); }catch(Exception e){ throw new IOException(e); }finally{ FileUtil.close(out); FileUtil.close(gunzip); FileUtil.close(in); } }controller压缩数据后 使用HttpServletResponse response 输出数据
byte[] _byte=GzipUtil.compress(json,"UTF-8"); response.getOutputStream().write(_byte); response.getOutputStream().flush(); response.getOutputStream().close();
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。