2015-04-06 48 views
0

目前我在C++中使用winhttp api從服務器獲取數據。服務器可以支持各種壓縮格式。所以目前我想用winhttp來獲得壓縮格式(例如gzip)並解壓縮它。是否有可能使用winhttp解壓縮數據?WinHTTP解壓縮功能?

回答

0

當然有可能。

here

要設置解碼選項,應用程序調用InternetSetOption 從InternetOpen,InternetConnect,或 返回HttpOpenRequest還把手。 INTERNET_OPTION_HTTP_DECODING選項在dwOption參數中指定爲 ,並且lpBuffer參數指向設置爲true的 布爾變量。要禁用解碼,應用程序 使用INTERNET_OPTION_HTTP_DECODING選項 調用InternetSetOption,並將布爾變量設置爲false。

因此,http壓縮對於用戶代碼是transprent的,您只需要調用一次InternetSetOption,您的流量就會被壓縮。

+1

'InternetSetOption'是一個WinINet函數,不是WinHTTP。 WinHTTP不支持壓縮:https://msdn.microsoft.com/en-us/library/windows/desktop/hh227297(v=vs.85).aspx – riv 2016-07-25 14:17:38

+0

只需使用WinHttpSetOption()WINHTTP_OPTION_DECOMPRESSION和WINHTTP_DECOMPRESSION_FLAG_GZIP,WINHTTP_DECOMPRESSION_FLAG_DEFLATE或WINHTTP_DECOMPRESSION_FLAG_ALL。在Windows 8.1及更新版本中受支持。 – 2017-02-23 23:18:11