用 .Net WebBrowser 控件获取POST数据
用 .Net WebBrowser 控件獲取POST數據
??? 很多應用中,開發者需要自己構建一個瀏覽器,并且對通過這個瀏覽器提交的請求進行截獲,比如用戶通過這個瀏覽器瀏覽了一個網頁,并向網站提交(POST)了一些信息,我們想在其提交到網站前對這些POST數據在瀏覽器側進行截獲,做一些跟蹤日志,或者對這些數據先加密或轉換后再發送到服務器。.Net? 提供的WebBrowser 控件可以讓開發者很輕松的構建一個類似IE的瀏覽器,但這個控件提供的事件較少,一些高級應用單純用這個控件提供的方法和事件無法實現。這篇文章我想介紹一下如何讓 WebBrowser 控件可以截獲自己POST出去的數據。
??? WebBrowser 其實是對 ActiveX 控件 SHDocVw 的封裝,而這個SHDocVw的很多底層調用WebBrowser控件并沒有提供實現,我們需要直接操作 SHDoceVw 控件來實現這些高級調用。操作方法如下:
??? 1、在 windows/system32 目錄下找到 shdocvw.dll 這個動態庫,將其添加到引用中
??? 2、在 Form1_Load 中添加如下語句
SHDocVw.WebBrowser?wb?=?(SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;wb.BeforeNavigate2?+=?
????new?DWebBrowserEvents2_BeforeNavigate2EventHandler(WebBrowser_BeforeNavigate2);
??? 3、添加如下成員函數
??? 完成上述3步后,你post 數據時, 就會響應 BeforeNavigate2 事件,postDataText 中就是你post的數據。你也可以修改PostData,對這些數據進行轉換或加密。
總結
以上是生活随笔為你收集整理的用 .Net WebBrowser 控件获取POST数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 石粘附近哪里有房子出租便宜点的?
- 下一篇: asp.net ajax控件工具集 Au