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