Microsoft.XMLHTTP對象

Microsoft.XMLHTTP對象
MSXML中提供了Microsoft.XMLHTTP對象,能夠完成從數據包到Request對象的轉換以及發送任務。
創建XMLHTTP對象的語句如下:
Set objXML = createObject(Msxml2.XMLHTTP) 或
Set objXML = createObject("Microsoft.XMLHTTP")
' Or, for version 3.0 of XMLHTTP, use:
' Set xml = Server.createObject(MSXML2.ServerXMLHTTP)
對象創建後調用Open方法對Request對象進行初始化,語法格式爲:
poster.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數據:
poster.send XML-data
Send方法的參數類型是Variant,可以是字符串、DOM樹或任意數據流。發送數據的方式分爲同步和異步兩種。在異步方式下,數據包一旦發送完畢,就結束Send進程,客戶機執行其他的操作;而在同步方式下,客戶機要等到服務器返回確認消息後才結束Send進程。
XMLHTTP對象中的readyState屬性能夠反映出服務器在處理請求時的進展狀況。客戶機的程序可以根據這個狀態信息設置相應的事件處理方法。屬性值及其含義如下表所示:
值 說明
0 Response對象已經創建,但XML文檔上載過程尚未結束
1 XML文檔已經裝載完畢
2 XML文檔已經裝載完畢,正在處理中
3 部分XML文檔已經解析
4 文檔已經解析完畢,客戶端可以接受返回消息
客戶機處理響應信息
客戶機接收到返回消息後,進行簡單的處理,基本上就完成了C/S之間的一個交互週期。客戶機接收響應是通過XMLHTTP對象的屬性實現的:
● responseTxt:將返回消息作爲文本字符串;
● responseXML:將返回消息視爲XML文檔,在服務器響應消息中含有XML數據時使用;
● responseStream:將返回消息視爲Stream對象。


AspHTTP組件的屬性

Accept
指示什麼樣的MIME類型可以被請求程序接受
例如:
HttpObj.Accept = "*/*"

Authorization
授權頭可以讓你獲得 需要驗證身份的地方的url
用戶名和口令之間用冒號點開
例如:
HttpObj.Authorization = "jimb:superbmr"

BinaryData
返回來自getURl請求獲得的兩進制格式的數據,你可以用這個屬性取得兩進制數據
如來自另一個web服務器的圖片例如:
<%
Response.ContentType = "image/gif"
Set HTTPObj = Server.createObject("AspHTTP.Conn")
HTTPObj.Url = "/blog/upload/200562215730899.gif"
HTTPObj.GetURL
Response.BinaryWrite HTTPObj.BinaryData
%>

ContentType
這個屬性允許你在POST***作時自定義content-type頭
例如:
ContentType = "application/x-www-form-urlencoded"

Error
報告請求中發生的任何錯誤

FollowRedirects
FollowRedirects告訴組件跟隨HTTP Server的重定向
例如:
HttpObj.FollowRedirects = true

Headers
Headers屬性包含了在請求被調用GetURL處理完成之後,來自http請求的迴應頭
例如:
Response.Write HttpObj.Headers

Port
Port屬性指示連接http服務器的端口號
例如:
HttpObj.Port = 80

PostData
PostData屬性應該被設置爲你希望post請求POST到web服務器的數據的值
例如:
HttpObj.PostData = "suid=jimb&act=upd"

Protocol
指示請求應該使用的http協議版本號,缺省值是HTTP/1.0
例如:
HttpObj.Protocol = "HTTP/1.1"

Proxy
proxy屬性包含proxy server代理服務器的地址/端口,冒號點開
例如:
HttpObj.Proxy = "address.net:2001"

ProxyPassword
設置需要驗證的http代理服務器的http代理密碼,現在只支持basic authentication(基本驗證)

RequestMethod
RequestMethod屬性指示發給服務器http請求的類型,合法的值是"GET", "POST" 和 "HEAD".
例如:
HttpObj.RequestMethod = "POST"

RegisteredUser
RegisteredUser屬性指示組件授權用戶的名字
例如:
Response.Write "This component is licensed to " & HttpObj.RegisteredUser

Response
Response屬性包含在收到web服務器過來的請求之後的http response迴應

SaveFileTo
SaveFileTo允許你得到任何類型的文件,自動存到本地盤上。圖形/文本/HTML文件均可以。
例如:
HttpObj.SaveFileTo = "c:/images/3rdqrtr.jpg"

TimeOut
timeout屬性決定組件等待http server響應的時間
例如:
HttpObj.TimeOut = 45

URL
URL屬性設定你希望request請求所***作的url,以http://開頭
例如:
HttpObj.URL = "http://www.myfinancial.com/scripts/update3.asp"

UserAgent
UserAgent讓組件通過發送一個request的UserAgent頭僞裝瀏覽器
例如:
HttpObj.UserAgent = "Mozilla Compatible (MS IE 3.01 WinNT)"

Version
指示AspHTTP組件的版本
例如:
Response.Write "The component version is " & HttpObj.Version

AspHTTP組件的方法

方法 參數 返回值 描述
GetURL 無 String 返回http請求的響應,這是一個字符串,組件不支持2進制返回值,如Gif/Jpg圖像
AddExtraHeader String 無 在請求內增加一個自定義的http頭,自定義頭可以包括模擬的瀏覽器頭,例如IE的分辨率信息頭
ClearExtraHeaders 無 無 清除所有AddExtraHeader設置的http頭
GetHeader String String 在GetUrl調用之後,獲得自定頭的值,如果有多個頭,返回第一個。要檢索所有的頭,請看GetHeaders
Example:
strCookie = HttpObj.GetHeader("Set-Cookie")
You could then on subsequent calls return the same cookie as follows:
if strCookie <> "" then
HttpObj.AddExtraHeader "Cookie: " & strCookie
end if
GetHREFs 無 Variant 字符串數組,在調用GetUrl之後,你可以調用GetHREFs處理html裏面的<a href=""> Tags.
GetHREFs返回一個你可以進一步處理或顯示的字符串的可變數組
請見HREFList.asp(下載包內有)使用這個方法的示例代碼,GetHREFs是在aspHTTP版本2.4增加的。
URLDecode strValue String 解碼一個URL編碼的字符串
URLEncode strValue String 將一個字符串編碼成一個合法的url值
Example:
HttpObj.URL = HttpObj.URLEncode("http://www.test_xyz.com?avalue=this is a value with spaces")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章