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

解决方案 »

  1.   

    对了,补充一下:
    com的WebBrowser在pre-navagating中好像有个post参数,不知道能不能用。我主要想用.net2.0自带的那个WebBrowser,看能不能得到post参数?
      

  2.   

    网页与应用程序的交互不外乎是网页上点击某链接,或通过其它途径,比如表单提交等,使浏览器导航至新的链接,所以我通过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!这也不失为一个极妙的方法。
      

  3.   

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

  4.   

    to jiangsheng 大虾:继承自WebBrowser一个类, 然后实现:
    AttachInterfaces
    DetachInterfaces
    就会得到内部的axWebBrowser是吗?CreateSink
    要不要用了?