2015-04-06 127 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