VBS中怎么获取GZIP压缩的HTTP内容

VBS中怎么获取GZIP压缩的HTTP内容,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

不同组件对GZIP压缩的处理不尽相同,首先看Msxml2.XMLHTTP:

VBS中怎么获取GZIP压缩的HTTP内容

'ByDemon
'http://demon.tw
Dimhttp
Sethttp=CreateObject("Msxml2.XMLHTTP")
http.open"GET","https://www.baidu.com",False
http.setRequestHeader"Accept-Encoding","gzip"
http.send
WScript.Echohttp.responseText

从测试的结果看,Msxml2.XMLHTTP会自动进行GZIP解压,GOOD!

其次是Msxml2.ServerXMLHTTP:

'ByDemon
Dimhttp
Sethttp=CreateObject("Msxml2.ServerXMLHTTP")
http.open"GET","https://www.baidu.com",False
http.setRequestHeader"Accept-Encoding","gzip"
http.send
WScript.Echohttp.responseText

很可惜,返回的是乱码。再看看WinHttp.WinHttpRequest.5.1:

'ByDemon
Dimhttp
Sethttp=CreateObject("WinHttp.WinHttpRequest.5.1")
http.open"GET","https://www.baidu.com",False
http.setRequestHeader"Accept-Encoding","gzip"
http.send
WScript.Echohttp.responseText

依然是乱码。虽然说一般情况下用Msxml2.XMLHTTP组件已经绰绰有余了,但是有些时候还是不行的,比如不能发送Cookie,不能伪造Referer等等。所以还是得想办法对GZIP进行解码,办法无外乎两种,自己用VBS写算法或者调用第三方组件。

算法我就偷懒不写了,感觉效率不会太高,哪位朋友感兴趣可以写来玩玩。找了个不错的第三方组件(居然用第三方,我果然老了)Chilkat.Gzip:

DimGzip
SetGzip=CreateObject("Chilkat.Gzip")
Gzip.UnlockComponent""
'ByDemon
Dimhttp
Sethttp=CreateObject("WinHttp.WinHttpRequest.5.1")
http.open"GET","https://www.baidu.com",False
http.setRequestHeader"Accept-Encoding","gzip"
http.send
WScript.EchoGzip.UncompressString(http.responseBody,"utf-8")

看完上述内容,你们掌握VBS中怎么获取GZIP压缩的HTTP内容的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-07-29 21:59:11
收藏
分享
海报
0 条评论
171
上一篇:python怎么实现批量文件加密功能 下一篇:spring DI依赖注入方式和区别有哪些
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码