• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >vbs > VBS获取GZIP压缩的HTTP内容的实现代码

VBS获取GZIP压缩的HTTP内容的实现代码

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了http gzip,c http gzip,java http gzip,http gzip解压,gzip等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

不少网站为了提高加载速度,启用HTTP服务器的GZIP压缩功能,当客户端发送的HTTP请求中声明可以接受GZIP编码时,服务器自动对HTTP响应内容进行GZIP压缩。但是,在VBS中想自动对GZIP编码进行解压就没有那么容易了。

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

'By Demon
'http://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
</div>

从测试的结果看,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
</div>

很可惜,返回的是乱码。再看看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
</div>

依然是乱码。虽然说一般情况下用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")
</div>

顺便说一下这个组件是收费的,可以免费试用30天,所以还是应该用VBS来实现?

原文:http://demon.tw/programming/vbs-http-gzip.html

</div>

您可能想查找下面的文章:

  • VBS获取GZIP压缩的HTTP内容的实现代码

相关文章

  • 用vbs判断系统补丁的脚本
  • VBS编程教程 (第5篇)
  • VBS教程:方法-Delete 方法
  • VBS编程教程 (第1篇)
  • VBScript把json字符串解析成json对象的2个方法
  • vbs删除注册表项的代码
  • 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
  • VBS备忘录启动代码
  • reg2vbs.vbs 将Reg文件转换为VBS文件保存 脚本之家修正版本
  • VBS教程:函数-FormatNumber 函数

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • VBS教程:对象-Drive 对象
    • VBS教程:函数-Eval 函数
    • VBScript教程 第十三课 VBScript与窗体
    • EXE2BAT(EXE转BAT)的vbs脚本
    • VBS教程:运算符-Xor 运算符
    • VBS教程:VBscript语句-Property Get 语句
    • 把vbscript发挥到它的极限应用之一(数组)!!!
    • VBS脚本病毒原理分析与防范
    • VBS教程:方法-Replace 方法
    • vbscript include的办法实现代码第1/2页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有