日期:2014-05-19  浏览次数:20774 次

如何在WebBrowser控件中获取post参数?就像获取cookie一样。
如何在WebBrowser控件中获取post参数?就像获取cookie一样。
WebBrowser本身有没有办法?
如果没有,能不能通过其它办法?就像httplook,HttpSniffer一样截取http协议包,然后分析,有没有这方面的例子?估计要用到API,但不知道怎么样实现的。

------解决方案--------------------
不知道,帮顶
------解决方案--------------------
网页与应用程序的交互不外乎是网页上点击某链接,或通过其它途径,比如表单提交等,使浏览器导航至新的链接,所以我通过BeforeNavigate2这个事件来,该事件有flags、headers、postData、targetFrameName、uRL等属性,足够我们进行处理。这样我们程序就好像一个WebServer,可以处理网页上的链接、提交的表单等等。然后把使浏览器导航至处理后产生的结果网页。
  又在网上看到有人用System.Runtime.InteropServices.Expando.IExpando:
  mshtml.HTMLDocumentClass doc2=(mshtml.HTMLDocumentClass)webBrowser.Document;
  System.Runtime.InteropServices.Expando.IExpando ex=(System.Runtime.InteropServices.Expando.IExpando)doc2;
  System.Reflection.PropertyInfo piform1=ex.AddProperty( "Form1 ");
  piform1.SetValue(doc2,this,null);
  这样,在网页中的document.Form1就是这个WinForm的Control了。你可以用脚本来调用Form1!这也不失为一个极妙的方法。

------解决方案--------------------
你可以访问WebBrowser类封装的ActiveX的BeforeNavigate2事件
参见www.codeproject.com/csharp/ExtendedWebBrowser.asp