C# WebView2 网络请求监听,一定要设置AddWebResourceRequestedFilter,设置过滤条件:监控所有请求。不设置的话默认好像监听不到任何请求。
webView2.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All);
webView2.CoreWebView2.WebResourceResponseReceived += CoreWebView2_WebResourceResponseReceived;
webView2.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
webView2.NavigationCompleted += (ss, ee) =>
{
_currentUrl = webView2.Source.ToString();
};
panel.Controls.Add(webView2);
webView2.Dock = DockStyle.Fill;
// 初始化完成后,默认设置缩放为 120%(1.2)
webView2.ZoomFactor = 0.6;
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
string url = e.Request.Uri;
if (url.ToLower().Contains("render?pdduid="))
;
}
private void CoreWebView2_WebResourceResponseReceived(object sender, CoreWebView2WebResourceResponseReceivedEventArgs e)
{
string url = e.Request.Uri;
if (url.Contains("render?pdduid="))
;
}
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
string url = e.Request.Uri;
if (url.ToLower().Contains("render?pdduid="))
{
// 检查请求方法是否为POST
if (e.Request.Method.Equals("POST", StringComparison.OrdinalIgnoreCase))
{
var stream = e.Request.Content;
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
string postData = reader.ReadToEnd();
EncryptRequest request = JsonConvert.DeserializeObject(postData);
}
}
}
}
}