Microsoft.XMLHttp組件的屬性方法

 

一、使用步驟:
1、創建XMLHTTP對象 //需MSXML4.0支持 
2、打開與服務端的連接,同時定義指令發送方式,服務網頁(URL)和請求權限等。客戶端通過Open命令打開與服務端的服務網頁的連接。與普
通HTTP指令傳送一樣,可以用"GET"方法或"POST"方法指向服務端的服務網頁。
3、發送指令。
4、等待並接收服務端返回的處理結果。
5、釋放XMLHTTP對象

二、XMLHTTP方法:
Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )
bstrMethod:     數據傳送方式,即GET或POST。
bstrUrl:        服務網頁的URL。
varAsync:      是否同步執行。缺省爲True,即同步執行,但只能在DOM中實施同步執行。用中一般將其置爲False,即異步執行。
bstrUser:       用戶名,可省略。
bstrPassword:用戶口令,可省略。

Send( varBody )
varBody:指令集。可以是XML格式數據,也可以是字符串,流,或者一個無符號整數數組。也可以省略,讓指令通過Open方法的URL參數代入。

setRequestHeader( bstrHeader, bstrvalue )
bstrHeader:HTTP 頭(header)
bstrvalue: HTTP 頭(header)的值
如果Open方法定義爲POST,可以定義表單方式上傳:
xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")

三、XMLHTTP屬性:
onreadystatechange:在同步執行方式下獲得返回結果的事件句柄。只能在DOM中調用。
responseBody:       結果返回爲無符號整數數組。
responseStream:      結果返回爲IStream流。
responseText :       結果返回爲字符串。
responseXML:       結果返回爲XML格式數據。
具體的使用方法
創建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")

 

對象創建後調用Open方法對Request對象進行初始化,語法格式爲:


objXML.open http-method,url,async,userID,password

 


Open方法中包含了5個參數,前三個是必要的,後兩個是可選的(在服務器需要進行身份驗證時提供)。參數的含義如下所示:

http-method:HTTP的通信方式,比如GET或是POST
url:接收XML數據的服務器的URL地址。通常在URL中要指明ASP或CGI程序
async:一個布爾標識,說明請求是否爲異步的。如果是異步通信方式(true),客戶機就不等待服務器的響應;如果是同步方式(false),客戶機就要等到服務器返回消息後纔去執行其他操作
userID:用戶ID,用於服務器身份驗證
password:用戶密碼,用於服務器身份驗證

XMLHTTP對象的Send方法

用Open方法對Request對象進行初始化後,調用Send方法發送XML數據:


objXML.send()

 

Send方法的參數類型是Variant,可以是字符串、DOM樹或任意數據流。

發送數據的方式分爲同步和異步兩種。在異步方式下,數據包一旦發送完畢,就結束Send進程,客戶機執行其他的操作;而在同步方式下,客戶機要等到服務器返回確認消息後才結束Send進程。

XMLHTTP對象中的readyState屬性

其能夠反映出服務器在處理請求時的進展狀況。客戶機的程序可以根據這個狀態信息設置相應的事件處理方法。屬性值及其含義如下表所示:


值  說明
0   Response對象已經創建,但XML文檔上載過程尚未結束
1   XML文檔已經裝載完畢
2   XML文檔已經裝載完畢,正在處理中
3   部分XML文檔已經解析
4   文檔已經解析完畢,客戶端可以接受返回消息

 


客戶機處理響應信息,客戶機接收到返回消息後,進行簡單的處理,基本上就完成了C/S之間的一個交互週期。

客戶機接收響應是通過XMLHTTP對象的屬性實現的:

responseText:將返回消息作爲文本字符串;
responseBody:將返回消息作爲HTML文檔內容;
responseXML:將返回消息視爲XML文檔,在服務器響應消息中含有XML數據時使用;
responseStream:將返回消息視爲Stream對象

以下是一個簡單的例子:類似新聞小偷

 


<%
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.open "GET","http://www.alexa.com",false
objXML.send()
response.write(objXML.responseText)
%>
 
 

發佈了18 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章