我在以前的VB版本中瞭解到webbrowser對象有一個beforenavigate2事件,它提供了對webbrowser postdata的訪問。如何從VB.NET 2010中的webbrowser對象獲取POSTDATA?
我找啊找,我認爲事件的Visual Studio 2010
我如何能夠從WebBrowser對象搶POSTDATA有什麼想法禁用?
我在以前的VB版本中瞭解到webbrowser對象有一個beforenavigate2事件,它提供了對webbrowser postdata的訪問。如何從VB.NET 2010中的webbrowser對象獲取POSTDATA?
我找啊找,我認爲事件的Visual Studio 2010
我如何能夠從WebBrowser對象搶POSTDATA有什麼想法禁用?
我知道這是一個古老的問題,但我在同一個問題上掙扎,現在想到在這裏分享答案。這個問題的答案是luchosrock,因爲他是向我傳授的。
如果你有一個名爲,發言權System.Windows.Forms.WebBrowser對象,瀏覽器的一個實例,您可以實現自己的處理程序來控制Navigating事件(即某種程度上等同於在BeforeNavigate2)和在其內使用System.Net.WebRequest和System.Net.WebResponse對象:
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
這是不一樣的,直接從BeforeNavigating2事件中訪問POSTDATA對象,但它是一個不錯的選擇,我想。
如果此答案不滿足您,在另一個問題中有this answer,其中一個方法被解釋爲直接處理舊的BeforeNavigate2事件。