全球第三方检测排名:用 .Net WebBrowser 控件获取POST数据
来源:百度文库 编辑:中财网 时间:2024/05/02 04:48:47
很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交(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、添加如下成员函数
private void WebBrowser_BeforeNavigate2(object pDisp, ref object URL, ref object Flags,
ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
string postDataText = System.Text.Encoding.ASCII.GetString(PostData as byte[]);
}
完成上述3步后,你post 数据时, 就会响应 BeforeNavigate2 事件,postDataText 中就是你post的数据。你也可以修改PostData,对这些数据进行转换或加密。
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、添加如下成员函数
private void WebBrowser_BeforeNavigate2(object pDisp, ref object URL, ref object Flags,
ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
string postDataText = System.Text.Encoding.ASCII.GetString(PostData as byte[]);
}
完成上述3步后,你post 数据时, 就会响应 BeforeNavigate2 事件,postDataText 中就是你post的数据。你也可以修改PostData,对这些数据进行转换或加密。
WebBrowser控件的问题
vb程序WebBrowser控件
100分相求 C#怎么编程(或用WEBBROWSER控件)实现禁止JS脚本?
在线等 高分求webbrowser控件 vb
在中如何插入WebBrowser这个控件
C#中的webBrowser控件的使用?
关于vb的webbrowser控件的问题
如何取得webbrowser控件中的内容
vb 如何获得webbrowser控件的坐标?
C# WebBrowser控件 点击超连接
ASP.NET的服务器控件怎么用?
ASP.NET要用WEB控件,还是HTML控件,还是不要用控件
在VB中如何去掉WebBrowser控件的滚动条?
msdn哪里有webbrowser控件各参数的详细介绍?
VB中动态生成和删除WEBBROWSER控件方法
如何在C#中的WebBrowser控件中调用*.chm 文件
webbrowser控件如何判断网页已经下载完毕
webbrowser控件如何判断网页已经加载完毕。
VB中webbrowser控件范围内怎么禁止鼠标右键?
VB6.0怎样用WebBrowser控件获得网页源代码.....
请问如何用timer控件控制webBrowser刷新呢?
asp.net 控件源码
.net dataGrid控件;
.net TreeView控件应用;