關(guān)于aspHTTP
AspHTTP使你能夠使用http協(xié)議GET/POST/HEAD文檔
AspHTTP不是免費組件,需要你購買,更多信息請參考其主頁
特性
1 GET/POST/HEAD 請求方法
2 response(回應(yīng))頭可見
3 Accept(接受)頭可修改
4 超時時間可調(diào)整
5 支持Proxy代理
6 自定義客戶-代理頭
7 自定義POSTS的內(nèi)容-類型頭
8 重定向
9 支持驗證內(nèi)容
10 從URl獲得文件(包括兩進制文件)
11 允許自定義HTTP請求頭
AspHTTP 的安裝
將dll文件,拷貝到一個子目錄,例如NT的目錄\winnt\system32,win95/98的目錄\windows\system.
注冊dll文件,命令行將當前目錄換到該目錄,然后鍵入:
regsvr32 aspHTTP.dll
簡單實例:
使用這個組件十分簡單
1.創(chuàng)建對象
2.設(shè)定一些屬性
3.調(diào)用GetUrl方法
下面是vbscript使用AspHTTP的示例代碼
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.myfinancialpage.com/qrtresults.html"
strResult = HttpObj.GetURL
變量strResult現(xiàn)在包含一個字符串從http://www.myfinancialpage.com/qrtresults.html
GET獲得的文檔結(jié)果
實例:獲得GIF文件
<%
rem This demo pulls a GIF image from www.microsoft.com
Server.ScriptTimeout = 240
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.microsoft.com/library/images/gifs/toolbar/write.gif"
HttpObj.FollowRedirects = false
HttpObj.RequestMethod = "GET"
HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
HttpObj.SaveFileTo = "c:write.gif"
HttpObj.GetURL
Response.Write "<hr><h3>Headers Received</h3><pre>" & HttpObj.Headers & "</pre>"
%>
實例:處理和顯示URL包含的HREF
<html>
<body>
<%
Server.ScriptTimeout = 240
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = "http://www.genusa.com/asp/tools.html"
HttpObj.RequestMethod = "GET"
HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
strResult = HttpObj.GetURL
Response.Write "<h2>A HREF List</h2>"
varHREFArray = HttpObj.GetHREFs
intHREFArrayLimit = UBound(varHREFArray) -1
For I = 0 to intHREFArrayLimit
Response.Write varHREFArray(I) & "<br>" & VBCrLF
Next
%>
</body>
</html>
ASPHTTP組件下載
主頁:http://www.serverobjects.com/products.htm#Asphttp
下載:http://www.serverobjects.com/comp/asphttp3.zip
AspHTTP組件的屬性
Accept
指示什么樣的MIME類型可以被請求程序接受
例如:
HttpObj.Accept = "*/*"
Authorization
授權(quán)頭可以讓你獲得 需要驗證身份的地方的url
用戶名和口令之間用冒號點開
例如:
HttpObj.Authorization = "jimb:superbmr"
BinaryData
返回來自getURl請求獲得的兩進制格式的數(shù)據(jù),你可以用這個屬性取得兩進制數(shù)據(jù)
ContentType
這個屬性允許你在POST操作時自定義content-type頭
例如:
ContentType = "application/x-www-form-urlencoded"
Error
報告請求中發(fā)生的任何錯誤
FollowRedirects
FollowRedirects告訴組件跟隨HTTP Server的重定向
例如:
HttpObj.FollowRedirects = true
Headers
Headers屬性包含了在請求被調(diào)用GetURL處理完成之后,來自http請求的回應(yīng)頭
例如:
Response.Write HttpObj.Headers
Port
Port屬性指示連接http服務(wù)器的端口號
例如:
HttpObj.Port = 80
PostData
PostData屬性應(yīng)該被設(shè)置為你希望post請求POST到web服務(wù)器的數(shù)據(jù)的值
例如:
HttpObj.PostData = "suid=jimb&act=upd"
Protocol
指示請求應(yīng)該使用的http協(xié)議版本號,缺省值是HTTP/1.0
例如:
HttpObj.Protocol = "HTTP/1.1"
Proxy
proxy屬性包含proxy server代理服務(wù)器的地址/端口,冒號點開
例如:
HttpObj.Proxy = "address.net:2001"
ProxyPassword
設(shè)置需要驗證的http代理服務(wù)器的http代理密碼,現(xiàn)在只支持basic authentication(基本驗證)
RequestMethod
RequestMethod屬性指示發(fā)給服務(wù)器http請求的類型,合法的值是"GET", "POST" 和 "HEAD".
例如:
HttpObj.RequestMethod = "POST"
RegisteredUser
RegisteredUser屬性指示組件授權(quán)用戶的名字
例如:
Response.Write "This component is licensed to " & HttpObj.RegisteredUser
Response
Response屬性包含在收到web服務(wù)器過來的請求之后的http response回應(yīng)
SaveFileTo
SaveFileTo允許你得到任何類型的文件,自動存到本地盤上。圖形/文本/HTML文件均可以。
例如:
HttpObj.SaveFileTo = "c:\images\3rdqrtr.jpg"
TimeOut
timeout屬性決定組件等待http server響應(yīng)的時間
例如:
HttpObj.TimeOut = 45
URL
URL屬性設(shè)定你希望request請求所操作的url,以http://開頭
例如:
HttpObj.URL = "http://www.lan27.com/chengyu/index.aspx"
UserAgent
UserAgent讓組件通過發(fā)送一個request的UserAgent頭偽裝瀏覽器
例如:
HttpObj.UserAgent = "Mozilla Compatible (MS IE 3.01 WinNT)"
Version
指示AspHTTP組件的版本
例如:
Response.Write "The component version is " & HttpObj.Version
AspHTTP組件的方法
方法 | 參數(shù) | 返回值 | 描述 |
GetURL | 無 | String | 返回http請求的響應(yīng),這是一個字符串,組件不支持2進制返回值,如Gif/Jpg圖像 |
AddExtraHeader | String | 無 | 在請求內(nèi)增加一個自定義的http頭,自定義頭可以包括模擬的瀏覽器頭,例如IE的分辨率信息頭 |
ClearExtraHeaders | 無 | 無 | 清除所有AddExtraHeader設(shè)置的http頭 |
GetHeader | String | String | 在GetUrl調(diào)用之后,獲得自定頭的值,如果有多個頭,返回第一個。要檢索所有的頭,請看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