Gzip uncompress错误代码Z_BUF_ERROR

  • 现在大多数网站都采用gzip解压缩技术来提升web应用的性能(百度、新浪等等等)。
  • 某日gzip uncompress阶段,出现崩溃错误。err代码数字-5,查看对应的头文件zlib.h,确定错误原因为Z_BUF_ERROR
#define Z_OK            0
#define Z_STREAM_END    1
#define Z_NEED_DICT     2
#define Z_ERRNO        (-1)
#define Z_STREAM_ERROR (-2)
#define Z_DATA_ERROR   (-3)
#define Z_MEM_ERROR    (-4)
#define Z_BUF_ERROR    (-5)   // 这里
#define Z_VERSION_ERROR (-6)
  • google了一段时间,并在程序中加log。终于找到了问题,source缓冲区(即待解压的资源)的长度为0。
  • 总结一下导致Z_BUF_ERROR的原因:
  1. source缓冲区长度为0(没有要解压的资源,却调用解压过程)。
  2. dest缓冲区(解压后的资源)长度不够用来解压。

Gzip uncompress错误代码Z_BUF_ERROR相关推荐

  1. Java使用GZIP进行压缩和解压缩(GZIPOutputStream,GZIPInputStream)

    使用GZIPOutputStream进行GZIP压缩: public static byte[] compress(String str, String encoding) {if (str == n ...

  2. Sprintboot redis 采用gzip和Snappy compress压缩数据

    1 前言 怎么使用和结合Sprintboot + redis ,可以参照我前面的文章:https://blog.csdn.net/zzhongcy/article/details/102584028 ...

  3. c语言解压http中的gzip文件

    这是一篇流水账,记录前两天在解决http中解压gzip数据流程.(写完这篇就可以做其他工作了~~) 目的:c语言解压http的中gzip文件 一. tcpdump抓包,这条数据包是我试用某app时收到 ...

  4. 基于Node.js实现压缩和解压缩的方法

    本篇文章主要介绍了基于Node.js实现压缩和解压缩的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 压缩格式 zip 和 gzip 是两种我们最常见到的压缩格式,当 ...

  5. 构建最小根文件系统lfs

    构建最小根文件系统linuxfromscratch 一.Archival Utilities 8.8. Xz-5.2.5 Contents of Xz Installed programs: lzca ...

  6. 设计模式中的行为类模式

    设计模式中的行为类模式 行为类模式包括责任链模式.命令模式.解释器模式.迭代器模式.中介者模式.备忘录模式.观察者模式.状态模式.策略模式.模板方法模式.访问者模式. 责任链模式:方向是单一的.(上访 ...

  7. 163音乐点歌乱码分析以及解决办法

    习惯抓包然后把所有请求头弄上去,结果电脑上正常,手机模拟访问竟然是乱码的,我就郁闷了,竟然是http的常识坑死了我,还以为是163有什么高级手段呢. 解决方法是删除Accept-Encoding的模拟 ...

  8. Node.js 实现 zip压缩和解压

    Node.js 实现 zip压缩和解压 安装 compressing npm install compressing --save compressing.zip.compressDir('nodej ...

  9. JAVA抖音 WSS弹幕

    更新websocket读取数据. 数据格式变化不大,没有太复杂的加密. 外层多包了一层proto协议,数据增加了gzip压缩. 废话不多说,下面详细介绍. 一.浏览器包依旧采用微软playwright ...

最新文章

  1. 什么是线程池,连接池,线程池和连接池之间的区别
  2. 《FPGA入门教程》看书随笔——RTL设计
  3. c#连接数据库SqlHelper报错
  4. 打造个人专属的微型linux--启动原理篇
  5. IP地址 0.0.0.0 是什么意思?
  6. c语言操作数据库sql
  7. 测试用例的定义,测试用例模板,测试用例的作用,测试用例编写注意事项
  8. ENVI遥感处理(9):遥感影像镶嵌和图像裁剪
  9. 【Sniffer和网络执法官软件助你维护网络(转网络安全)】
  10. 安装scipy报错的解决方案
  11. 有了域名想绑定域名邮箱?拥有域名后,如何免费绑定邮箱呢?如何使用【昵称@你的.域名】收发邮件
  12. android图片花,Android中使用Canvas绘制南丁格尔玫瑰图(Nightingale rose diagram)
  13. 计算机毕业设计Java河池市旅游信息系统(源码+系统+mysql数据库+lw文档)
  14. 两年多的社招经验分享,我的跳槽经验总结(含阿里滴滴美团快手头条)
  15. MySQL Replication 梳理详解
  16. Docker(24)- docker login 命令详解
  17. 智能BI,如今走到了哪一步?
  18. Android 修改昵称
  19. EAUML日拱一卒-微信小程序实战:位置闹铃 (8)-WXML条件渲染
  20. Anaconda or Miniconda windows下 cmd命令行模式创建、激活、关闭、删除虚拟环境方法步骤

热门文章

  1. strongSwan报文交互过程
  2. 树莓派爱好者基地64位2.0系统更新说明
  3. TinyXml快速入门(一)
  4. 跨境电商赛道蓄势待发,“黑五”大促带来新的消费浪潮(Starday)
  5. DWR高级主题之反向Ajax(DWR3介绍)
  6. Ubuntu安装时钟同步软件
  7. 卸载office2016kms密钥重新获取office安装密钥窗口
  8. 网络传输的异步、同步传输的实现原理
  9. grpc-go源码剖析十三之pickFirst 平衡器 原理介绍
  10. clusterProfiler进行GSEA富集分析