ESP32 Gzip

image.png
和风天气返回的数据是经过gzip压缩的,且无法取消让他直接返回原数据.
在arduino库里找了一下没有直接可以使用的.
在github找了一个把uzlib移植到Arduino的库
https://github.com/tignioj/ArduinoUZlib/
把src文件夹复制到项目的lib下即可
image.png
在项目中引用它

#include "ArduinoUZlib.h"

解压

// 获取HTTP响应流
WiFiClient *stream = http.getStreamPtr();
// 获取 HTTP 响应体的大小
int size = http.getSize();
// 初始化inbuff数组
uint8_t inbuff[size];
// 将http流数据写入inbuff中
stream->readBytes(inbuff, size);
// 解压后的输出流
uint8_t *outbuf = NULL;
// 解压后的大小,在调用解压方法后会被赋值。
uint32_t out_size = 0;
// 调用解压函数
int result = ArduinoUZlib::decompress(inbuff, size, outbuf, out_size);
// 输出解压
Serial.write(outbuf, out_size);

解压成功
image.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值