十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
VBS中怎么获取GZIP压缩的HTTP内容,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联是一家专注于做网站、成都做网站与策划设计,乌拉特后网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:乌拉特后等地区。乌拉特后做网站价格咨询:18982081108不同组件对GZIP压缩的处理不尽相同,首先看Msxml2.XMLHTTP:
'By Demon '/tupian/20230522/demon.tw Dim http Set http = CreateObject("Msxml2.XMLHTTP") http.open "GET", "https://www.baidu.com", False http.setRequestHeader "Accept-Encoding", "gzip" http.send WScript.Echo http.responseText
从测试的结果看,Msxml2.XMLHTTP会自动进行GZIP解压,GOOD!
其次是Msxml2.ServerXMLHTTP:
'By Demon Dim http Set http = CreateObject("Msxml2.ServerXMLHTTP") http.open "GET", "https://www.baidu.com", False http.setRequestHeader "Accept-Encoding", "gzip" http.send WScript.Echo http.responseText
很可惜,返回的是乱码。再看看WinHttp.WinHttpRequest.5.1:
'By Demon Dim http Set http = CreateObject("WinHttp.WinHttpRequest.5.1") http.open "GET", "https://www.baidu.com", False http.setRequestHeader "Accept-Encoding", "gzip" http.send WScript.Echo http.responseText
依然是乱码。虽然说一般情况下用Msxml2.XMLHTTP组件已经绰绰有余了,但是有些时候还是不行的,比如不能发送Cookie,不能伪造Referer等等。所以还是得想办法对GZIP进行解码,办法无外乎两种,自己用VBS写算法或者调用第三方组件。
算法我就偷懒不写了,感觉效率不会太高,哪位朋友感兴趣可以写来玩玩。找了个不错的第三方组件(居然用第三方,我果然老了)Chilkat.Gzip:
Dim Gzip Set Gzip = CreateObject("Chilkat.Gzip") Gzip.UnlockComponent "" 'By Demon Dim http Set http = CreateObject("WinHttp.WinHttpRequest.5.1") http.open "GET", "https://www.baidu.com", False http.setRequestHeader "Accept-Encoding", "gzip" http.send WScript.Echo Gzip.UncompressString(http.responseBody, "utf-8")
看完上述内容,你们掌握VBS中怎么获取GZIP压缩的HTTP内容的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!