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