2014-10-28 49 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複製到安裝目錄。在我手動更換了庫之後,解壓縮工作!

謝謝!