用.Net WebBrowser控件获取POST数据
来源:互联网 发布:电脑必备软件 编辑:程序博客网 时间:2024/05/21 05:41
用.Net WebBrowser控件获取POST数据
.
.
很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交(POST)了一些信息,我们想在其提交到网站前对这些POST数据在浏览器侧进行截获,做一些跟踪日志,或者对这些数据先加密或转换后再发送到服务器。.Net 提供的WebBrowser 控件可以让开发者很轻松的构建一个类似IE的浏览器,但这个控件提供的事件较少,一些高级应用单纯用这个控件提供的方法和事件无法实现。这篇文章我想介绍一下如何让 WebBrowser 控件可以截获自己POST出去的数据。
WebBrowser 其实是对 ActiveX 控件 SHDocVw 的封装,而这个SHDocVw的很多底层调用WebBrowser控件并没有提供实现,我们需要直接操作 SHDoceVw 控件来实现这些高级调用。操作方法如下:
1、在 windows/system32 目录下找到 shdocvw.dll 这个动态库,将其添加到引用中
2、在 Form1_Load 中添加如下语句
3、添加如下成员函数
完成上述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,对这些数据进行转换或加密。
http://www.chenjiliang.com/Article/View.aspx?ArticleID=13526
- 用 .Net WebBrowser 控件获取POST数据
- 用 .Net WebBrowser 控件获取POST数据
- 用.Net WebBrowser控件获取POST数据
- 用 .Net WebBrowser 控件获取POST数据
- WebBrowser 控件获取POST数据
- WebBrowser 控件获取POST数据
- VB使用WebBrowser控件POST数据
- VB.NET 通过窗口句柄,获取webbrowser控件HTML内容
- vb.net webbrowser控件如何获取鼠…
- 如何让 WebBrowser 控件可以截获自己POST出去的数据
- vb.net WebBrowser控件使用
- WebBrowser使用POST方法提交数据
- Webbrowser截获POST数据和模拟POST提交数据
- .net post提交数据获取返回数据的方法
- asp.net后台获取前台控件数据
- vb.net webbrowser控件 设置代理IP,webbrowser 代理IP
- 获取webbrowser控件 网页的源码
- 获取webbrowser控件网页的源码
- 如果printf中的转换说明数大于后面的参数的数量
- 敏捷开发一千零一问系列之九:总体架构什么时机进行?(上)
- hdu 2031 damn进制!
- 浅拷贝和深拷贝 Shallow&&DeepCopy
- [C#高质量代码的建议]转型
- 用.Net WebBrowser控件获取POST数据
- ORACLE 核心进程详解
- GAE(python)中发送带附件的邮件
- Vim 总结(一)
- 在《大耳朵英语》的播客上,批量获取MP3地址
- Flex中的反射应用 - 仿Hibernate创建一个通用的数据验证工具
- C# WebBrowser准确判断网页最终装载完毕
- Squid学习笔记
- struts2中使用ajax之二