找回密码  加入

AUTOIT CN

搜索
查看: 317|回复: 8

[IE类操作] [已解决]HTTP 返回GZIP数据格式如何解压??

[复制链接]
发表于 2020-11-17 15:09:38 | 显示全部楼层 |阅读模式
本帖最后由 auto 于 2020-11-19 08:19 编辑

如何在setRequestHeader中不加入GZIP可以返回数据,但是加入GZIP,就解不开了。参考https://www.autoitx.com/forum.ph ... 8112&highlight=gzip,引用GZIP.AU3进行解压,也不能获取数据。感觉_ZLIB_Uncompress _ZLIB_GZUncompress 都不起作用。。
引用的GZIP.AU3不支持64位,在文件开始加上 #PRE_UseX64=n 即可。
发表于 2020-11-17 17:53:32 | 显示全部楼层
上代码看看
 楼主| 发表于 2020-11-17 18:28:44 | 显示全部楼层
#include <zlib.au3>
#include <Date.au3>
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=C:\WINDOWS\System32\SHELL32.dll|-18
#PRE_Outfile_x64=test.exe
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$url = "https://www.126.com"
$oHTTP.Open("GET", $url) ;true 为异步模式
$oHTTP.setRequestHeader("Accept" , "text/html,application/xhtml+xml,image/jxr,*/*" )
$oHTTP.setRequestHeader("Accept-Language" , "zh-CN" )
$oHTTP.setRequestHeader("User-Agent" , "Mozilla/5.0(WindowsNT10.0;WOW64;Trident/7.0;rv" )
$oHTTP.setRequestHeader("Accept-Encoding" , "gzip,deflate" )
$oHTTP.setRequestHeader("Host" , "www.126.com" )
$oHTTP.setRequestHeader("Connection" , "Keep-Alive" )
$oHTTP.Send()
$binary = $oHTTP.ResponseBody
$html = BinaryToString(_ZLIB_GZUncompress($binary),4)
ConsoleWrite($html)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2020-11-17 18:30:27 | 显示全部楼层
好吧,整了这么久,原来不能用64位,只能用32位。。。
发表于 2020-11-17 18:36:23 | 显示全部楼层
win10 测试返回正确结果
 楼主| 发表于 2020-11-17 18:41:46 | 显示全部楼层
zghwelcome 发表于 2020-11-17 18:36
win10 测试返回正确结果

我的win10返回无数据,要加上#PRE_UseX64=n在前面才有数据。。一直都是64位测试。。
发表于 2020-11-17 18:42:39 | 显示全部楼层
auto 发表于 2020-11-17 18:41
我的win10返回无数据,要加上#PRE_UseX64=n在前面才有数据。。一直都是64位测试。。

这个UDF的DLL只支持32位
发表于 2020-11-18 00:16:35 | 显示全部楼层
解决后及时改标题。
发表于 2020-11-18 08:34:29 | 显示全部楼层
厉害了同学们 我来学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2021-1-20 07:57 , Processed in 2.375015 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表