当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/154498.html

相关文章:

  • 朴素,word,任何参考文献导入endnote
  • 数学建模--三维图像绘制的Python实现
  • Spring Cloud Alibaba-Feign整合Sentinel
  • zabbix配置钉钉告警、和故障自愈
  • Web安全测试(五):XSS攻击—存储式XSS漏洞
  • 本地PC机通过SSH方式远程Jetson
  • 面向对象 学习黑马视频(03)
  • FinClip 支持创建 H5应用类小程序;PC 终端 优化升级
  • YOLOV8实例分割——详细记录环境配置、自定义数据处理到模型训练与部署
  • 2309ddocx02文档
  • 第一章初识微服务
  • 微信小程序电影票订票小程序软件设计与实现
  • Redis 缓存预热+缓存雪崩+缓存击穿+缓存穿透
  • java 面试题汇总整理
  • 淘宝开放平台免审核接入 获取淘宝卖家订单列表订单详情API
  • Mybatis中的关系映射
  • 领域建模之数据模型设计方法论
  • springboot毕业生信息招聘平台设计与实现
  • 开发前期准备工作
  • k8s deployment服务回滚,设置节点为不可调度
  • 信息系统安全运维和管理指南
  • 现货黄金代理好吗?
  • BCSP-玄子Share-Java框基础_双系统Redis安装与基础语法
  • android system_server WatchDog简介
  • 华为---OSPF协议优先级、开销(cost)、定时器简介及示例配置
  • MEMORY-VQ: Compression for Tractable Internet-Scale Memory
  • Netty—ChannelHandler
  • Android 集成onenet物联网平台
  • java八股文面试[JVM]——如何打破双亲委派模型
  • 一加11/Ace2/10Pro手机如何实现全局120HZ高刷-游戏超级流畅效果