Board logo

标题: [技术讨论] vbs中的"Msxml2.Xmlhttp"[属性与方法] [打印本页]

作者: czjt1234    时间: 2012-10-4 23:01     标题: vbs中的"Msxml2.Xmlhttp"[属性与方法]

本帖最后由 czjt1234 于 2012-10-4 23:37 编辑

XmlHttp 是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API
XmlHttp 最大的用处是可以更新网页的部分内容而不需要刷新整个页面

带 ?? 的参数可能是网页代码里用的,未解


属性
OnReadyStateChange        在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用 ??
ReadyState                返回当前请求的状态 ??

ResponseBody              将回应信息正文以unsigned byte数组形式返回
ResponseStream            以Ado Stream对象的形式返回响应信息 ??
ResponseText              将响应信息作为字符串返回
ResponseXML               将响应信息格式化为Xml Document对象并返回 ??

Status                    返回当前请求的http状态码 ??
StatusText                返回当前请求的响应行状态 ??



方法
Abort                     取消当前请求 ??
GetAllResponseHeaders     获取响应的所有http头 ??
GetResponseHeader         从响应信息中获取指定的http头 ??
Open                      指定URL,和上传数据的方式

Send                      发送请求到http服务器并接收回应
SetRequestHeader          设置HTTP头(header)和值 ??


Msxml2.Xmlhttp 对象在vbs里一般和 Adodb.Stream 对象一起,用于下载文件
网页代码不懂,下面介绍下 vbs 里用到的几个参数
作者: czjt1234    时间: 2012-10-4 23:07

本帖最后由 czjt1234 于 2012-10-4 23:46 编辑

下面是部分属性和方法的参数,及用法举例

代码测试环境:winxpsp3 IE8 Wscript版本5.7.0.18066



  1. Dim objMsxml2Xmlhttp, Read
  2. Set objMsxml2Xmlhttp = CreateObject("Msxml2.Xmlhttp")
  3. objMsxml2Xmlhttp.open "Get|Post", Url, True|False, "用户名", "密码"
  4. '指定URL,和上传数据的方式
  5. 'Get   把参数加到URL里提交,安全性较低,提交的数据较小,网址和参数的分隔符为?
  6. 'Post  参数在HTTP请求的消息实体中,安全性较高,提交的数据较大
  7. 'Url   网址
  8. 'True  客户机不等待服务器的响应,继续执行其它命令。缺省值
  9. 'False 客户机就要等到服务器返回消息后,才去执行其它命令
  10. '用户名、密码,是访问 Url 时可能需要的。可选
  11. objMsxml2Xmlhttp.Send      '发送数据。(Send 方法有可选参数 ??)
  12. Read = objMsxml2Xmlhttp.ResponseBody   '将回应信息以unsigned byte数组形式返回
  13. Read = objMsxml2Xmlhttp.ResponseStream '以Ado Stream对象的形式返回响应信息 ??
  14. Read = objMsxml2Xmlhttp.ResponseText   '将响应信息作为字符串
  15. Read = objMsxml2Xmlhttp.ResponseXML    '将响应信息格式化为Xml Document对象 ??
  16. 'ResponseBody 可以用 Adodb.Atream 的 Write Save方法保存为文件
  17. 'ResponseText 可以用 Adodb.Stream 的 WriteText Save方法保存为文件,但不支持中文
复制代码

作者: czjt1234    时间: 2012-10-4 23:35

一个实例,和 Adodb.Stream 对象一起下载文件


  1. Dim objMsxml2Xmlhttp, objAdodbStream, strUrl, BinTemp
  2. Set objMsxml2Xmlhttp = CreateObject("Msxml2.Xmlhttp")
  3. Set objAdodbStream   = CreateObject("Adodb.Stream")
  4. strUrl = "http://www.baidu.com/img/baidu_sylogo1.gif"
  5. With objMsxml2Xmlhttp    '下载数据
  6.   .Open "get", strUrl, False
  7.   .Send
  8.   BinTemp = .ResponseBody
  9. End With
  10. With objAdodbStream      '保存为文件
  11.   .Type = 1
  12.   .Mode = 3
  13.   .Open
  14.   .Write BinTemp
  15.   .SaveToFile "D:\baidu_sylogo1.gif"
  16.   .Close
  17. End With
复制代码

作者: Seder    时间: 2012-10-5 22:33

http://msdn.microsoft.com/en-us/library/ie/ms535874(v=vs.85).aspx




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2