壹、什麽是網頁?
網頁是代碼,但實際上是文檔格式。瀏覽器將這種格式的文檔翻譯成機器可以理解的語言。
2.就拿在淘寶購物來打個比方吧。
1.在淘寶購物,壹定要先選定要買的物品,相當於網址,也就是妳想要的東西(目標頁面)。
2.指定包裝和交付方式。易碎品是否需要海綿包裝,運輸方式是快遞還是平郵?這裏我們選擇的交付方式是xmlhttp。為什麽選擇xmlhttp?這是因為妳要運輸的貨物的性質。妳要運送的貨物是xml格式的文檔(註意網頁代碼其實是xml格式的文檔,瀏覽器負責解釋這個文檔),所以我們指定包裝xml格式的http運輸方式。而這個包裹的快遞公司叫microsoft.xmlhttp。
http = server . createobject(" Microsoft . xmlhttp ")//選擇快遞公司。
http . open“GET”,url,false //發貨詳情。
Http.send() //下單。
在網上買過東西的人都知道,在快遞公司有幾種發貨狀態可以查詢:貨物發出,途中收貨。而且我們發送的xmlhttp包裝的貨物也接受這個狀態查詢。
Http.readystate中的商品有四種狀態,通常第壹種狀態是“已發送”,第四種狀態是“已接收”。readystate的值是1,後者是4。
也就是說,當Http.readystate=4時,表示網頁已經下載完畢(貨物已經送到家)。
如果妳收到貨物,妳應該檢查它們是否符合妳自己的需要。因為xmlhttp傳輸的內容如果包含中文顯示會出現亂碼,所以需要轉碼。
這裏需要註意的壹點是,要進行代碼轉換,需要返回二進制數據,而不是dom對象。所以應該寫成“Http.responseBody”而不是“Http.responseXml”
5.轉碼可以通過adodb.stream組件的方法完成。我們可以寫壹個函數來封裝這個組件。
函數bytesToBstr(body,Cset)
模糊目標流
set objstream = server . createobject(" adodb . stream ")//創建壹個組件實例。
objstream。Type = 1
objstream。模式=3
objstream。打開
Objstream。寫正文//寫內容,也就是妳收到的貨物。
objstream。位置= 0
objstream。類型= 2
objstream。字符集= Cset
BytesToBstr = objstream。閱讀文本
objstream。關閉
set objstream = nothing
結束功能
這裏我們寫壹個bytesToBstr函數,註意bytesToBstr的大小寫,因為網上很多例子的第壹個b是大寫的,但是調用的時候是小寫的。雖然在不區分大小寫的asp中無所謂,但是這是壹個非常不好的編程習慣,因為其他大多數編程語言都是區分大小寫的。
gethttppage = bytestobstr(http . response body,“GB 2312”)調用函數轉碼。
Set http=nothing關閉xmlhttp鏈接相當於簽收付款並關閉交易。
微軟。XMLHTTP是微軟的壹個組件。因為妳使用的IIS服務和IE瀏覽器都是微軟的,所以妳會看到Microsoft.XMLHTTP,如果妳使用其他瀏覽器,可能是document.xmlHttp. 2,本質上是壹樣的,但是使用服務器端和客戶端的時候要註意同步和異步。