使用curl解压gzip的内容

好久没写博客了,今天心血来潮,记录一下今天解决的一个问题。

curl设置了CURLOPT_ACCEPT_ENCODING (7.21.8之前为CURLOPT_ENCODING )之后,按照官方的说法,是可以自动将响应的gzip压缩的content解压的,但是我的工程里却没有解压,而且网上一搜索也是一大批问这个问题的人,而回答居然都是说可以自动解压。我就纳了闷了。

我工程里的curl库是我自己编译的,我去看了一下当时的config.log,搜索zlib居然看到with-zlib是disable的,那就明白了,下载zlib库,先编译好,然后在curl工程里configure带上-with-zlib=参数,坑爹的是,它还必须的到你设置的目录下找include目录再去找头文件,找lib目录再去找libz.a,而zlib的库里恰恰没这种目录结构,那就自己手动建一下吧。

然后编译curl,工程中设置CURLOPT_ACCEPT_ENCODING 为gzip,响应果然就顺利自动解压了,O了。

时间: 2024-10-12 11:14:53

使用curl解压gzip的内容的相关文章

VB6解压GZIP和C#解压GZIP

VB进行GZIP解压的,DLL是系统的,如果没有点击这里下载 1 Option Explicit 2 'GZIP API 3 '-------------------------------------------------- 4 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length A

linux-压缩与解压之 gzip 命令

gzip命令:文件的压缩 gzip属于GNU软件,是linux系统首选的压缩工具,tar归档命令的-z选项压缩也是利用gzip/gunzip来压缩/解压文件. gzip生成.gz文件 语法: gzip [选项] [文件或目录...] 参数: -c 或--stdout或 --to-stdout  将压缩(解压)的内容输出到标准输出设备上,并保留原有文件 -d 或--decompress  解压 -l 或--list 如果目标文件是压缩文件,则显示压缩大小,解压后大小,压缩比率,解压后文件名. -r

【毕业设计日记-4月】gzip格式解压

之前很困惑的一个问题,这两天也倒腾出来了,就是wireshark分析出来的这个 ↑  ①Frame   ↑②De-chunked entity body  ↑③Uncompressed entity body 这三部分的关系是啥? 网上也找不到,还是请教了师兄师姐,才知道①是报文的所有内容,②是①中HTTP报文后面压缩的内容,③就是这部分压缩内容解压后的内容,也就是msgContent等等等这些需要的内容,所以我现在要做的就是截获报文之后对这部分内容进行解压(然后再提取msgContent的内容

压缩及解压命令gzip、bzip2、tar

1. gzip 描述:压缩与解压缩 用法:gzip[选项]...[文件名称]... 选项:-d 解压 gzip hello.txt     # 文件压缩后名为hello.txt.gz gzip -d hello.txt.gz    # 解压gz文件 2. bzip2 描述:压缩与解压缩 bzip2 hello.txt      # 文件压缩后名为hello.txt.bz2 bzip2-d hello.txt.bz2     # 解压gz文件 注意:gzip与bzip2工具不可以对目录做打包压缩操

iOS客户端的gzip解压

服务端使用gzip压缩,可以大幅度减小传输包的体积,加快客户端网络请求速度,为用户节省流量.当服务器返回的httpHeader的"Content-Encoding" 属性的值是gzip时,数据会自动被解压缩,但有时候在客户端还没拿到数据的时候,就已经被某些网关解压了,这样gzip就没有起到作用.因此可以约定其他策略,防止网关解压,例如在别的头属性中标记gzip. 如此,就需要我们自己来解压gzip数据.方法如下:添加framework库中的libbz2.1.0.dylib:给nsdat

linux下,gzip的解压与压缩

部分http响应报文采取gzip格式压缩,需要解压后数据才有效. http://www.zlib.net/ 提供了解压gzip的库函数 例子非常详细,http://www.zlib.net/zlib_how.html 系统版本:Ubuntu 14.04 安装库:apg-get install zlib1g-dev 编译时制定:gcc XXX -lz 添加头文件:#include <zlib.h> 特别需要注意: example中的 ret = inflateInit(&strm); 是

[Linux] 解压tar.gz文件,解压部分文件

遇到数据库无法查找问题原因,只能找日志,查找日志的时候发现老的日志都被压缩了,只能尝试解压了   数据量比较大,只能在生产解压了,再进行查找 文件名为*.tar.gz,自己博客以前记录过解压方法: http://www.cnblogs.com/garinzhang/archive/2013/04/23/3037147.html 使用tar –zxvf *.tar.gz无法解压,明明好好的tar.gz文件能这样解压的,为什么不能解压?   后来想了想,是不是先要解压*.gz文件,使用gunzip

接口测试(八)--压缩解压

今天认识了一位很有名的老中医,与之闲聊.他问我做什么的,我说:做软件测试的.当听到我的职业之后,他建议我:做你们这一行,夏天尽量不要开空调,多运动,少吃冰淇淋,不要经常买饮料喝,不能喝啤酒,更不能喝红酒,多喝白开水,出门应该少打车多坐公交或步行,不要在外面吃饭,尽量吃素,少吃肉类,特别是海鲜! 我点了点头,老中医接着说 :毕竟,你们收入太低了- 我竟然无言以对.. ---------------------------进入正题--------------------------- 一.什么是HT

续写vim,shell脚本基础编辑,read命令,if与case判断语句,文件查找方式,压缩与解压,

一. Vim续写 ?1.命令扩展模式的位置定界 ??起始位置 cmd 终止位置???Cmd:????y复制????d删除????Gu变大写????gu变小写??例如:0y$命令意味着:????0 先到行头????Y 从这里开始拷贝????$ 拷贝到本行行尾最后一个字符????Ye 从当前位置拷贝到本单词的最后一个字符 ?2.扩展命令模式:地址定界 ? ?# 具体第#行,? ?#1,#2 从开头数第#1行到第#2行? ?#1,+#2 从开头数的第#1行到从第#1行开始数的第#2行? ? ?例:2,