nim*_*ish 3 c com winapi ole wininet
我的服务器向我发送了一个使用 GZIP 压缩进行压缩的 JSON 数据流。
当我在普通 IE 浏览器上请求这些数据时,我会得到数据,当我提到要打开的应用程序时,浏览器会自动解压缩该数据流并显示我的 JSON 数据。
我的 C 应用程序使用 COM/OLE 嵌入 IE 浏览器实例,我使用 WININET 进行 GET/POST 操作,所以在这里我压缩了数据。
由于它的 IE 浏览器功能可以在默认 IE 浏览器的情况下自动解压缩 GZIP 数据如何在我的 C 应用程序中通过 WININET 自动解密数据?
启动 Vista,INTERNET_OPTION_HTTP_DECODINGflag 在 WinInet 中启用 gzip 解码:
INTERNET_OPTION_HTTP_DECODING:
使 WinINet 能够对 gzip 和 deflate 编码方案执行解码。有关更多信息,请参阅内容编码。
当解码失败时,应用程序有两种选择:它可以删除 Accept-Encoding 标头并重新发送请求,或者它可以将请求上的 INTERNET_OPTION_HTTP_DECODING 选项设置为 false 然后重新发送请求。如果解码选项设置为 false,则应用程序必须检查 Content-Encoding 标头并在应用程序级别执行任何解码。
在早期版本的 Windows 中,您必须自己解压(使用http://zlib.net/也相当容易)
| 归档时间: |
|
| 查看次数: |
2970 次 |
| 最近记录: |