如何在VB.NET 2010中从webbrowser对象获取POSTDATA?

如何在VB.NET 2010中从webbrowser对象获取POSTDATA?,vb.net,visual-studio-2010,beforenavigate2,Vb.net,Visual Studio 2010,Beforenavigate2,我知道在以前版本的VB中,webbrowser对象有一个beforenavigate2事件,该事件提供了对webbrowser的postdata的访问 我已经搜索了又搜索,我认为该事件已被VisualStudio2010禁用 有没有想过如何从webbrowser对象中获取postdata 我知道这是一个老问题,但我一直在为同一个问题苦苦挣扎,现在想在这里分享答案。这个答案要归功于他,因为是他教给我的 如果您有一个名为browser的对象实例,您可以实现自己的处理程序来控制事件(这在某种程度上相当

我知道在以前版本的VB中,webbrowser对象有一个beforenavigate2事件,该事件提供了对webbrowser的postdata的访问

我已经搜索了又搜索,我认为该事件已被VisualStudio2010禁用


有没有想过如何从webbrowser对象中获取postdata

我知道这是一个老问题,但我一直在为同一个问题苦苦挣扎,现在想在这里分享答案。这个答案要归功于他,因为是他教给我的

如果您有一个名为browser的对象实例,您可以实现自己的处理程序来控制事件(这在某种程度上相当于BeforeNavigate2),并从中使用和对象:

Imports System.IO
Imports System.Net
Imports System.Windows.Forms
'[...]
Private Sub browser_Navigating(sender As Object, _ 
                               e As WebBrowserNavigatingEventArgs) _ 
                           Handles browser.Navigating

    Dim req As WebRequest
    Dim res As WebResponse
    Dim postDataStream As Stream
    Dim WebResponse As String = ""
    '[...]
    Try
        req = WebRequest.Create(e.Url.ToString)
        req.Method = "POST"
        res = req.GetResponse
        postDataStream = res.GetResponseStream
        Dim webStreamReader As New StreamReader(postDataStream)
        While webStreamReader.Peek >= 0
            WebResponse = webStreamReader.ReadToEnd
        End While
    Catch ex As Exception
        ' Exception control code here
    End Try
    '[...]
End Sub
这与在导航2事件之前从中直接访问PostData对象不同,但我认为这是一个不错的选择

如果这个答案不能让您满意,那么在另一个问题中,将解释一个方法,直接处理旧的BeforeNavigate2事件