Microsoft.XMLHttp組件的屬性方法
一、使用步驟:
1、創(chuàng)建XMLHTTP對象 //需MSXML4.0支持
2、打開與服務(wù)端的連接,同時(shí)定義指令發(fā)送方式,服務(wù)網(wǎng)頁(URL)和請求權(quán)限等??蛻舳送ㄟ^Open命令打開與服務(wù)端的服務(wù)網(wǎng)頁的連接。與普通HTTP指令傳送一樣,可以用"GET"方法或"POST"方法指向服務(wù)端的服務(wù)網(wǎng)頁。
3、發(fā)送指令。
4、等待并接收服務(wù)端返回的處理結(jié)果。
5、釋放XMLHTTP對象
二、XMLHTTP方法:
Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )
bstrMethod: 數(shù)據(jù)傳送方式,即GET或POST。
bstrUrl: 服務(wù)網(wǎng)頁的URL。
varAsync: 是否同步執(zhí)行。缺省為True,即同步執(zhí)行,但只能在DOM中實(shí)施同步執(zhí)行。用中一般將其置為False,即異步執(zhí)行。
bstrUser: 用戶名,可省略。
bstrPassword:用戶口令,可省略。
Send( varBody )
varBody:指令集??梢允荴ML格式數(shù)據(jù),也可以是字符串,流,或者一個(gè)無符號整數(shù)數(shù)組。也可以省略,讓指令通過Open方法的URL參數(shù)代入。
setRequestHeader( bstrHeader, bstrvalue )
bstrHeader:HTTP 頭(header)
bstrvalue: HTTP 頭(header)的值
如果Open方法定義為POST,可以定義表單方式上傳:
xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")
三、XMLHTTP屬性:
onreadystatechange:在同步執(zhí)行方式下獲得返回結(jié)果的事件句柄。只能在DOM中調(diào)用。
responseBody: 結(jié)果返回為無符號整數(shù)數(shù)組。
responseStream: 結(jié)果返回為IStream流。
responseText : 結(jié)果返回為字符串。
responseXML: 結(jié)果返回為XML格式數(shù)據(jù)。
具體的使用方法
創(chuàng)建XMLHTTP對象的語句如下:
Set objXML = CreateObject("Msxml2.XMLHTTP") 或 Set objXML = CreateObject("Microsoft.XMLHTTP") 'Or for version 3.0 of XMLHTTP, use: 'Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")對象創(chuàng)建后調(diào)用Open方法對Request對象進(jìn)行初始化,語法格式為:
objXML.open http-method,url,async,userID,password
Open方法中包含了5個(gè)參數(shù),前三個(gè)是必要的,后兩個(gè)是可選的(在服務(wù)器需要進(jìn)行身份驗(yàn)證時(shí)提供)。參數(shù)的含義如下所示:
http-method:HTTP的通信方式,比如GET或是POST
url:接收XML數(shù)據(jù)的服務(wù)器的URL地址。通常在URL中要指明ASP或CGI程序
async:一個(gè)布爾標(biāo)識,說明請求是否為異步的。如果是異步通信方式(true),客戶機(jī)就不等待服務(wù)器的響應(yīng);如果是同步方式(false),客戶機(jī) 就要等到服務(wù)器返回消息后才去執(zhí)行其他操作。
userID:用戶ID,用于服務(wù)器身份驗(yàn)證
password:用戶密碼,用于服務(wù)器身份驗(yàn)證
XMLHTTP對象的Send方法
用Open方法對Request對象進(jìn)行初始化后,調(diào)用Send方法發(fā)送XML數(shù)據(jù):
objXML.send()
Send方法的參數(shù)類型是Variant,可以是字符串、DOM樹或任意數(shù)據(jù)流。
發(fā)送數(shù)據(jù)的方式分為同步和異步兩種。在異步方式下,數(shù)據(jù)包一旦發(fā)送完畢,就結(jié)束Send進(jìn)程,客戶機(jī)執(zhí) 行其他的操作;而在同步方式下,客戶機(jī)要等到服務(wù)器返回確認(rèn)消息后才結(jié)束Send進(jìn)程。
XMLHTTP對象中的readyState屬性
其能夠反映出服務(wù)器在處理請求時(shí)的進(jìn)展?fàn)顩r。客戶機(jī)的程序可以根據(jù)這個(gè)狀態(tài)信息設(shè)置相應(yīng)的事件處理方 法。屬性值及其含義如下表所示:
值 說明
0 Response對象已經(jīng)創(chuàng)建,但XML文檔上載過程尚未結(jié)束
1 XML文檔已經(jīng)裝載完畢
2 XML文檔已經(jīng)裝載完畢,正在處理中
3 部分XML文檔已經(jīng)解析
4 文檔已經(jīng)解析完畢,客戶端可以接受返回消息
客戶機(jī)處理響應(yīng)信息,客戶機(jī)接收到返回消息后,進(jìn)行簡單的處理,基本上就完成了C/S之間的一個(gè)交互周期。
客戶機(jī)接收響應(yīng)是通過XMLHTTP對象的屬性實(shí)現(xiàn)的:
responseText:將返回消息作為文本字符串;
responseBody:將返回消息作為HTML文檔內(nèi)容;
responseXML:將返回消息視為XML文檔,在服務(wù)器響應(yīng)消息中含有XML數(shù)據(jù)時(shí)使用;
responseStream:將返回消息視為Stream對象
以下是一個(gè)簡單的例子:類似文章小偷
<% Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.open "GET","http://www.ykjd9.com",false objXML.send() response.write(objXML.responseText) %>
建站咨詢熱線
029-33273980