以前のバージョンの VB では、webbrowser オブジェクトには、webbrowser の postdata へのアクセスを提供する beforenavigate2 イベントがあったことを理解しています。
検索して検索しましたが、Visual Studio 2010 ではイベントが無効になっていると思います。
webbrowser オブジェクトから postdata を取得する方法について何か考えはありますか?
以前のバージョンの VB では、webbrowser オブジェクトには、webbrowser の postdata へのアクセスを提供する beforenavigate2 イベントがあったことを理解しています。
検索して検索しましたが、Visual Studio 2010 ではイベントが無効になっていると思います。
webbrowser オブジェクトから postdata を取得する方法について何か考えはありますか?
これは古い質問であることは知っていますが、同じ質問に苦労していたので、ここで答えを共有することを考えました. 彼は私にそれを教えてくれた人だったので、この答えのクレジットはluchosrockに送られます。
たとえば、 browserという名前の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オブジェクトに直接アクセスするのと同じではありませんが、良い代替手段だと思います。
この回答で満足できない場合は、別の質問にこの回答があり、古いBeforeNavigate2イベントを直接処理する方法が説明されています。