致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

Microsoft.XMLHttp的属性和方法的简介及使用

上一篇 / 下一篇  2008-07-20 12:21:55 / 个人分类:Automation

51Testing软件测试网qBBp,vSIG

Microsoft.XMLHttp组件的属性方法
;Cy^3r~P0一、使用步骤:51Testing软件测试网 p z4KT r*yo
1、创建XMLHTTP对象 //需MSXML4.0支持
9XlF)C%A] S:s&M02、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。客户端通过Open命令打开与服务端的服务网页的连接。与普51Testing软件测试网 Yh;O p8x4B[~
通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
$w3|/Q(wS@6^d*[03、发送指令。
L8m(]~C_TWM,h$Lk04、等待并接收服务端返回的处理结果。51Testing软件测试网*iV_\*B#j)~1{d2r
5、释放XMLHTTP对象
51Testing软件测试网wI@w*M/tH.}

$i&g3`2f;G0二、XMLHTTP方法:
Q:ZbZF`'Gz0Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )
5Z2F A&|ruz0bstrMethod:     数据传送方式,即GET或POST。51Testing软件测试网9Lyq"S&\#I#t y
bstrUrl:        服务网页的URL。
#UA_6w(BN.p:zt"k0varAsync:      是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
{6A/Lm-n6m#?D-C0bstrUser:       用户名,可省略。
/[W#H f4P0bstrPassword:用户口令,可省略。

_/FW%`T;K(i)x0

{C/Fl,RoS%h(ev8k0Send( varBody )
$M v Gh]3F0varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。
51Testing软件测试网%wR(?$ob$c#c

"OAE*f1}8mQo0setRequestHeader( bstrHeader, bstrvalue )
#T(Y"W^ Sg.T"M0bstrHeader:HTTP 头(header)
#Je,WSbHT4M0bstrvalue: HTTP 头(header)的值
x,[-E3G*YG0如果Open方法定义为POST,可以定义表单方式上传:
u2V;sVb*mO0xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")
51Testing软件测试网"W)_v:Rrkg#o

51Testing软件测试网 d.}NP#A-@x

三、XMLHTTP属性:51Testing软件测试网!x2Vn6F xUN9m
onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。51Testing软件测试网6dLo^ }p)bL
responseBody:       结果返回为无符号整数数组。51Testing软件测试网/{V Px1y:q
responseStream:      结果返回为IStream流。51Testing软件测试网{mH%] u"O*D
responseText :       结果返回为字符串。
)T'c%DcsR ID6B0F v0responseXML:       结果返回为XML格式数据。51Testing软件测试网#X1O_%J.EM-TZ D,^
具体的使用方法
7q Z w P/B6yQ7K#lG0创建XMLHTTP对象的语句如下:

Su4Vj$P0

@1L+AO1^o N0Set ōbjXML = CreateObject("Msxml2.XMLHTTP") 或51Testing软件测试网KRgy CK9L T
Set ōbjXML = CreateObject("Microsoft.XMLHTTP")
h OX)r @ ]W ?7Y3|X0'Or for version 3.0 of XMLHTTP, use:
pX!G{9J z0B0'Set ōbjXML = Server.CreateObject("MSXML2.ServerXMLHTTP")

U'A1UW&M"lj$x5n051Testing软件测试网_5O^0Cjlx

对象创建后调用Open方法对Request对象进行初始化,语法格式为:51Testing软件测试网9b4e-u}}.?&lt

,c*D!RG9v-Mu$X [0objXML.open http-method,url,async,userID,password

Bs*z0Dp'E@0

7LcET"bz W0Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:

kI/[3nNqX#C051Testing软件测试网 yPyZ A*d hQQ

http-method:HTTP的通信方式,比如GET或是POST
)y8c~$~7^6_*\li_0url:接收XML数据的服务器的URL地址。通常在URL中要指明ASP或CGI程序51Testing软件测试网KE7k'I#o$m+O7_
async:一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作51Testing软件测试网jtrx rN6Fg
userID:用户ID,用于服务器身份验证
_i+Q`b0password:用户密码,用于服务器身份验证51Testing软件测试网(o]H:c.|

ru\&nRH0XMLHTTP对象的Send方法51Testing软件测试网+sh&Jj/`pb"I

@gk(z8VoQV0用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:

S {M+bb-[&y8A2v051Testing软件测试网{:MSR-bm{4x

objXML.send()51Testing软件测试网zu ncR H*^!n

'tw%N`\*P}0Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。51Testing软件测试网;O C P'U(s

1Y0U8L8l"S'L0发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。

c4v9o[:`3C;y(L)VV051Testing软件测试网Tr%P0kC:B

XMLHTTP对象中的readyState属性51Testing软件测试网/Y'}!q$L)WI

y VX*}H$r,R$f0Nt0其能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:

\q\0l:oK4_051Testing软件测试网}8zuq2J)k#nsX,\

51Testing软件测试网*V2|~ab
值  说明51Testing软件测试网-W Q(L!B(iYK)F
0   Response对象已经创建,但XML文档上载过程尚未结束
[-E m+Aq%b!E$T01   XML文档已经装载完毕
oDLUMF7G9Y02   XML文档已经装载完毕,正在处理中51Testing软件测试网l$G+RJi,vl:U
3   部分XML文档已经解析51Testing软件测试网.Q(c3R0D6WF
4   文档已经解析完毕,客户端可以接受返回消息51Testing软件测试网(zItR&D U

51Testing软件测试网+|+ea HU x A:U5ce

客户机处理响应信息,客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。51Testing软件测试网hnI ~Gp*H0dc

51Testing软件测试网&ll?}*x|AG{

客户机接收响应是通过XMLHTTP对象的属性实现的:51Testing软件测试网N!fr.Zk/?[!G$R+~

xk5p.J7O0?P{0responseText:将返回消息作为文本字符串;51Testing软件测试网Q|NpW^kU
responseBody:将返回消息作为HTML文档内容;
Y NV%jt `m\.C0responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;51Testing软件测试网#W"X G!qN*a3H-U
responseStream:将返回消息视为Stream对象51Testing软件测试网a,ewp^LsY#ZwV

%w\"aCja#s0以下是一个简单的例子:类似新闻小偷51Testing软件测试网 x hh,]^E1y

51Testing软件测试网)o;C|~ u:j5r

<%51Testing软件测试网l&Gs HS,X U_
Set ōbjXML = Server.CreateObject("MSXML2.ServerXMLHTTP")51Testing软件测试网 L.xhlOb7tp
objXML.open "GET","http://www.alexa.com",false
FQ:J a8l`Gf%\0objXML.send()
gR)CaU'^JZ&R:F2X0response.write(objXML.responseText)51Testing软件测试网&J9C&|@"ux|(l
%>51Testing软件测试网J6k8k?w

PJM7@^-F0

TAG: 自动化测试

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 91102
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar