2014-10-28 48 views
0

我建OpenSSL和zlib,然后用下面的命令libcurl如何启用libcurl在Windows上解压缩gzip数据?

nmake -f Makefile.vc6 CFG=release-dll-ssl-dll-zlib-dll 

在输出我看到zliblibcurl类的编译时启用。

但是,当我使用libcurl取得与以下设置压缩页面,响应不解压。

curl_easy_setopt(handle, CURLOPT_ENCODING, ""); 
curl_easy_setopt(handle, CURLOPT_HTTP_CONTENT_ENCODING, 1L); 

CURLOPT_ENCODING is defined as CURLOPT_ACCEPT_ENCODING. 

The libcurl version is 7.35.0. zlib version is 1.2.8 and openssl version is 1.0.1i. 

非常感谢,如果有一个人谁使用libcurl在Windows上解压缩数据和分享您的体验。谢谢。

+0

为了澄清,响应头确实将内容编码设置为'gzip'。并且相同的代码在使用预构建的libcurl的linux平台上解压缩数据。 – 2014-10-28 17:38:06

回答

0

CURLOPT_HTTP_CONTENT_ENCODING不是有效的libcurl选项!

您可能的意思是CURLOPT_HTTP_CONTENT_DECODING,但您不需要这里。只需将CURLOPT_ACCEPT_ENCODING设置为“”就足够了,但会要求libcurl内置zlib使其能够请求压缩内容并在接收时自动解压缩。

此功能在所有支持的平台上的功能完全相同。这是运行完全相同的代码。如果它不适用于特定的平台,我会怀疑你的libcurl实际上并没有启用它。

+0

谢谢丹尼尔。是的,这是一个错字。我的意思是CURLOPT_HTTP_CONTENT_DECODING。我用CFG = release-dll-ssl-dll-zlib-dll构建了libcurl,并看到zlib已启用。我错过了什么吗? – 2014-10-29 15:01:01

-1

我已经想出了这个问题。新的libcurl库实际上是用zlib启用的。问题出在我的安装程序中,它不会将新的libcurl lib复制到安装目录。在我手动更换了库之后,解压缩工作!

谢谢!