客户端调用XMLHTTP的过程很简单,只有5个步骤:
1、创建XMLHTTP对象
2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
3、发送指令。
4、等待并接收服务端返回的处理结果。
5、释放XMLHTTP对象
定义XMLHTTP对象:
Set bjXML = CreateObject(Msxml2。XMLHTTP) 或
Set bjXML = 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)
XMLHTTP方法:
open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)
bstrMethod: 数据传送方式,即GET或POST。用"POST"方式发送数据,可以大到4MB,也可以换为"GET",只能256KB。
bstrUrl: 服务网页的URL。microsoft。xmlhttp组件的用法和属性
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中调用。microsoft。xmlhttp组件的用法和属性
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响应行状态
附录
(一) HTTP 1。1支持的状态代码
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分