关于XMLHTTP
顾名思义,XMLHTTP是个传送XML格式数据的超文本传输协议。
实际上,XMLHTTP的数据传输过程更为灵活一些:
它上传的指令可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。还可以是URL的参数。
早期XMLHTTP用于远程数据库管理,是微软的XML解析器(MSXML)中的XMLHTTP协议是一个非常方便实用的客户/服务通讯管道。综合运用XMLHTTP以及ActiveX数据对象(ActiveX Data Objects, ADO/ADOX)可以简单方便地实现数据库远程管理。
对象使用的步骤
客户端调用XMLHTTP的过程很简单,只有5个步骤:
1、创建XMLHTTP对象
dim xmlHttp as Object
set xmlHttp = CreateObject("MSXML2.xlmHTTP")
2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
xmlHttp.Open "GET", URL ,False
xmlHttp.setRequestHeader "",""
3、发送指令。
xmlHttp.Send
4、等待并接收服务端返回的处理结果。
Do While xmlHttp.readyState<>4
DoEvents
Loop
dim StrText as String
StrText = xmlHTTP.reponseText
5、释放XMLHTTP对象
set xmlHttp = Nothing
XMLHTTP对象的定义
定义XMLHTTP对象:
Set objXML = CreateObject(Msxml2.XMLHTTP) 或
Set objXML = CreateObject(“Microsoft.XMLHTTP”) (vbs)
var xml = new ActiveXObject("Microsoft.XMLHTTP"(javascript)
' Or, for version 3.0 of XMLHTTP, use:
Set xml = Server.CreateObject(MSXML2.ServerXMLHTTP)
前期绑定的话引用如下:
C:\windows\system32\mxxml3.dll
Microsoft XML V3.0(版本看本机的版本)
XMLHTTP方法
open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)
bstrMethod: 数据传送方式,即GET或POST。用"POST"方式发送数据,可以大到4MB,也可以换为"GET",只能256KB。
bstrUrl: 服务网页的URL。
varAsync: 是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
bstrUser: 用户名,可省略。
bstrPassword:用户口令,可省略。
send(varBody)
varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。 发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
setRequestHeader(bstrHeader, bstrValue)
bstrHeader:HTTP 头(header)
bstrValue:HTTP 头(header)的值
如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
abort
取消当前 HTTP 请求
getAllResponseHeaders
从响应信息中检索所有的标头字段
getResponseHeader
从响应信息正文中获得一个 HTTP 标头值
XMLHTTP属性
onreadystatechange
在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
readyState
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:
值 说明
0 Response对象已经创建,但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕,正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕,客户端可以接受返回消息
responseBody
Variant型 结果返回为无符号整数数组
responseStream
Variant型 结果返回为IStream流
responseText
string型 结果返回为字符串。
responseXML
object型 结果返回为XML格式数据。
status
Long型 服务器返回的HTTP状态码
statusText
String型 服务器HTTP响应行状态
网友评论