wininet,winhttp,xmlhttprequest,各版本区别 《转》

一、标准API接口WinINet(Microsoft Windows Internet)和WinHTTP(Microsoft Windows HTTP)

实现Http访问,微软提供了二套API:WinINet, WinHTTP(分别封装于system32目录下的wininet.dll和winhttp.dll内)

二者主要区别在于后者更为安全和稳定,可以说WinHTTP是WinINet的升级版

LZ所提的UDF WinHTTP.au3就是直接调用标准接口写成的自定义函数库文件

二、COM对象XMLHttpRequest和WinHttpRequest和ServerXMLHTTPRequest

XMLHttpRequest是基于WinInet封装的,

而WinHttpRequest和ServerXMLHTTPRequest则是基于WinHTTP封装的

所以三者的稳定性属XMLHttpRequest为最差

封装成COM形式主要是为了方便js vbs等脚本的调用,还具有易书写、降低开发难度等许多特点把

三、对象版本和封装位置

1、XMLHttpRequest对象版本和对应的封装dll文件

Microsoft.XMLHTTP 对应 msxml.dll

MSXML2.XMLHTTP 对应 msxml2.dll

MSXML2.XMLHTTP.3.0 对应 msxml3.dll

MSXML2.XMLHTTP.4.0 对应 msxml4.dll

MSXML2.XMLHTTP.5.0 对应 msxml5.dll(此版本是伴随office2007发布的,所以目录下可能找不到该版本的dll)

MSXML2.XMLHTTP.6.0 对应 msxml6.dll

如上各个dll的发布一般都是以补丁的形式发布,win7默认都集成了吧

2、ServerXMLHTTP对象版本和对应的封装dll文件

Msxml2.ServerXMLHTTP 对应 msxml2.dll(win7自带,下同!)

Msxml2.ServerXMLHTTP.3.0 对应 msxml3.dll

Msxml2.ServerXMLHTTP.4.0 对应 msxml4.dll

Msxml2.ServerXMLHTTP.5.0 对应 msxml5.dll

Msxml2.ServerXMLHTTP.6.0 对应 msxml6.dll

3、WinHttpRequest对象

WinHttp.WinHttpRequest.5.1 对应 Winhttp.dll

(如上高版本的通常稳定性会好一点)

四、对象成员(属性、方法、事件等),主要优缺点

XMLRequest成员参考

缺点:和浏览器挂钩,大多情况下会共享cookies,session,不支持单独设置代理

优点:和浏览器挂钩,大多情况下会共享cookies,session

ServerXMLHTTP成员参考

缺点:系统没有对应dll的情况下程序需要外挂一个dll文件

优点:脱离浏览器,使用代理方便

WinHttpRequest成员参考

缺点:暂无

优点:脱离浏览器,使用代理方便

五、总结

如果你对WinInet或Winhttp比较熟悉的话当然推荐直接使用标准接口,但同样要付出的代价就是书写更多的代码,记住更多的参数

就个人开发经验而言还是推荐大家使用WinHttpRequest对象,微软封装的COM还是很优秀的,应该足以应付大多数要求了

相关链接:

1、朱剑的财富博客

http://51lica.com/archives/1942

2、WinHTTP vs. WinINet

https://msdn.microsoft.com/en-us/library/windows/desktop/hh227297(v=vs.85).aspx

文档信息

版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

原文网址: http://sunweiwei.com/2003/

最后修改时间: 2015年05月22日 15:12:27

相关推荐
zhengfei61117 分钟前
高级网络安全爬虫/蜘蛛
爬虫
恬淡如雪1 小时前
Excel接口测试自动化实战
爬虫·python·excel
m0_663234011 小时前
Libvio.link爬虫技术全解析
爬虫
深蓝电商API2 小时前
httpx库异步爬虫实战对比aiohttp
爬虫·httpx
0思必得03 小时前
[Web自动化] 爬虫合规指南:从法律红线到安全实践
前端·爬虫·自动化·web自动化
喵手14 小时前
Python爬虫实战:针对天文历法网站(以 TimeandDate 或类似的静态历法页为例),构建高精度二十四节气天文数据采集器(附xlsx导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集天文历法网站数据·构建二十四节气天文数据
喵手16 小时前
Python爬虫实战:采集博客园 Cnblogs文章标题、发布日期、标签以及HTML正文等(附 Markdown 文档格式预览)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·博客园文章采集·博客园文章采集转md格式
10岁的博客16 小时前
Libvio.link爬虫技术全解析
爬虫
2501_9481201519 小时前
大语言模型与爬虫技术融合的智能数据采集系统
人工智能·爬虫·语言模型
喵手20 小时前
Python爬虫实战:采集巨潮资讯网等上市公司公告数据,通过智能关键词匹配技术识别分红、回购、停牌等重要信息(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集巨潮资讯数据·智能匹配识别分红、回购等信息·csv导出+sqlite