這個asp會把我的GET和POST request都轉交給目標網頁,再把目標網頁的內容轉交給我。
寫法如下:
1. 先設好CodePage
CodePage用來指定IIS用哪個代碼頁來解碼的,這裡我們用UTF-8(65001)Session.CodePage = 65001
2. 轉交網頁內容
先取得用家的POST request,還可以附帶你自己加上的ExtraPostData
Dim strPostData strPostData = Request.form If strPostData <> "" Then strPostData = strPostData & "&" strPostData = strPostData & ExtraPostData然後開啟XMLHTTP,把你的目標網頁(URLTarget)和GET request拼在一起,再連同POST request一起發送出去
SET httpRequest = Server.createObject("MSXML2.XMLHTTP") With httpRequest .Open "POST", URLTarget & "?" & Request.QueryString , FALSE .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" .Send strPostData End With最後再把取得的網頁內容寫出來,別忘了在Response header加上Character set,否則有些瀏覽器可能會用了錯的character set來解碼
Response.charset = "UTF-8" Response.write(httpRequest.ResponseText)
不過這個asp只能轉交網頁,並不能轉交網頁附帶的資源(例如存放在內部伺服器的圖片和和連結)。
3. 錯誤處理
visual basic並沒有像C++之類的語言有exception handling機制,一般來說是先加入下面的代碼,這樣就算遇到錯誤不是馬上停止而是繼續下去:
On Error Resume Next之後每當你想檢查剛剛的代碼有沒有出錯時,可以檢查Err.Number:
If Err.Number <> 0 Then Response.write Err.Description Err.Clear End If
沒有留言:
張貼留言