有两种方式:
1. 使用 devtool protocol:
// 启用网络监控 await webView.CoreWebView2.CallDevToolsProtocolMethodAsync("Network.enable", "{}"); //注册 Network.requestWillBeSent 事件 var requestWillBeSentReceiver = webView.CoreWebView2.GetDevToolsProtocolEventReceiver("Network.requestWillBeSent"); requestWillBeSentReceiver.DevToolsProtocolEventReceived += (m, n) => { //Debug.WriteLine("Request will be sent: " + n.ParameterObjectAsJson); if(n.ParameterObjectAsJson.Contains(".m3u8")) Debugger.Break(); }; //注册 Network.responseReceived 事件 var responseReceivedReceiver = webView.CoreWebView2.GetDevToolsProtocolEventReceiver("Network.responseReceived"); requestWillBeSentReceiver.DevToolsProtocolEventReceived += (m, n) => { //Debug.WriteLine("Response recieved: " + n.ParameterObjectAsJson); if (n.ParameterObjectAsJson.Contains(".m3u8")) Debugger.Break(); };
2. 使用控件自带事件
webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested; webView.CoreWebView2.WebResourceResponseReceived += CoreWebView2_WebResourceResponseReceived;
没有详细对比,感觉以下两种方案是一样的,都会漏掉一部分请求。
因为我用 cefsharp 做的另一个方案(当然代码要复杂很多),可以拦截到所有网站上的请求,但这个只能拦截到大多数网站,一部分网站是拦截不到的,但 开发者工具中明显可以看到是有请求的
标签:CoreWebView2,Network,查看,WebView2,ParameterObjectAsJson,requestWillBeSentReceiver From: https://www.cnblogs.com/nanfei/p/18475560