JAVA HTTP压缩数据

devtools/2024/12/26 4:42:29/
java">/*** 压缩数据包** @param code* @param data* @param resp* @throws IOException*/protected void writeZipResult(int code, Object data, HttpServletResponse resp) throws IOException {resp.setHeader("Content-Encoding", "gzip");// write到客户端resp.setContentType("application/json;charset=utf-8");ApiResult ret = new ApiResult();ret.setData(data);ret.setCode(code);byte[] compressedData = null;ByteArrayOutputStream baos = null;GZIPOutputStream gzos = null;byte[] bytes = null;try {baos = new ByteArrayOutputStream();gzos = new GZIPOutputStream(baos);bytes = JSON.toJSONString(ret).getBytes(StandardCharsets.UTF_8);gzos.write(bytes);gzos.finish();compressedData = baos.toByteArray();logger.info("Original data len:{} after compression len:{} compression rate:{}", bytes.length, compressedData.length, compressedData.length * 1.0 * 100 / bytes.length);} catch (Exception e) {logger.error("Compressed data is abnormal", e);} finally {if (gzos != null) {gzos.close();}if (baos != null) {baos.close();}}if (compressedData != null) {// 设置Content-Lengthresp.setContentLength(compressedData.length);resp.getOutputStream().write(compressedData);resp.getOutputStream().flush();}}

压缩结果能达到 90%以上
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/devtools/145442.html

相关文章

IDEA使用Alt + Enter快捷键自动接受返回值一直有final修饰的问题处理

在使用IDEA的过程中,使用快捷键Alt Enter在接收返回值时,可以快速完成参数接收,但前面一直会出现接收参数前面有final修饰的情况,效果如下所示: 看着真烦人呢,我们会发现在接受到返回值是上方有个 Declare…

Springboot 整合 Duird

Springboot 整合 Duird 1. pom.xmlyml配置启动类测试手动JDBC&#xff0c;执行动态sql启动日志Duird 监控地址SQL监控 1. pom.xml <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version&g…

SMMU软件指南SMMU编程之虚拟机结构和缓存

安全之安全(security)博客目录导读 目录 一、虚拟机结构(VMS) 二、缓存 一、虚拟机结构(VMS) 虚拟机结构(VMS)是SMMU中的概念,是一个由STE.VMSPtr字段指向的结构,包含每个虚拟机的配置设置。在相同安全状态下具有相同虚拟机ID(VMID)的多个STE必须指向相同的VMS。…

大语言模型中的Agent优势及相关技术;Agent和RAG区别

大语言模型中的Agent优势及相关技术: 强大的任务规划与执行能力 技术:通过将复杂任务拆解为多个子任务,并依据任务间的逻辑关系和优先级进行规划,确定执行顺序,调用相应工具或模型来完成各子任务,最终实现复杂任务的整体解决。如微软的Jarvis,可利用LLM的推理规划能力拆…

重温设计模式--外观模式

文章目录 外观模式&#xff08;Facade Pattern&#xff09;概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式&#xff08;Facade Pattern&#xff09;概述 定义 外观模式是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供了一个统一…

【优选算法】快乐数

链接&#xff1a;202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 算法原理&#xff1a; 鸽巢原理&#xff08;抽屉原理&#xff09;&#xff1a;n个巢穴&#xff0c;n1个鸽子&#xff0c;至少有一个巢穴里的鸽子 > 1。 可以抽象为&#xff1a;判断链表是否有环&…

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单&#xff0c;单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键&#xff0c;选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆&#xff0c;如下图所示&#xff0c;然后点击“下一页” 1.3、…

DAP调试器 硬石 KEIL5配置

基础配置 选择F407板子型号 勾选这个可以支持定义跳转 添加工程头文件路径 选择CMSIS-DAP