首頁  >  文章  >  後端開發  >  Microsoft的XMLHTTP物件詳解

Microsoft的XMLHTTP物件詳解

黄舟
黄舟原創
2017-03-16 16:32:501527瀏覽

MSXML中提供了Microsoft.XMLHTTP物件,能夠完成從封包到Request物件的轉換以及傳送任務。 建立XMLHTTP物件的語句如下: Set objXML = CreateObject("Msxml2.XMLHTTP") 或 Set objXML = CreateObject("Microsoft.XMLHTTP") 'Or for version 3.0 of MSXML中提供了Microsoft.XMLHTTP對象,能夠完成從封包到Request對象的轉換以及發送任務。
建立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)
%>

整個步驟很明顯:建立、開啟、傳送和接受。                                                

#

以上是Microsoft的XMLHTTP物件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn