首页 > 其他分享 >WebView2 拦截查看所有的请求

WebView2 拦截查看所有的请求

时间:2024-10-19 10:20:43浏览次数:7  
标签:CoreWebView2 Network 查看 WebView2 ParameterObjectAsJson requestWillBeSentReceiver

有两种方式:

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

相关文章

  • P2487 [SDOI2011] 拦截导弹
    Sol两个限制的导弹拦截。设\(f_i\)表示以\(i\)结尾的最长LIS显然可以得到暴力转移方程\(f_i=\displaystyle\max_{j=1,a_j\gea_i,b_j\geb_i}^{i-1}f_j+1\),考虑到是三维偏序,所以用CDQ分治优化即可。离散化不要忘记排序!Code#include<iostream>#include<iomanip>......
  • SpringBoot 2.3 升级到 SpringBoot 3.3 爬坑 -- HandlerInterceptorAdapter 拦截器无
    SpringBoot2.3升级到SpringBoot3.3爬坑SpringBoot2.3.0->spring-webmvc-5.2.6SpringBoot3.3.4->spring-webmvc-6.1.13HandlerInterceptorAdapter类在SpringFramework的较新版本中已经被废弃。在Spring6.1.13中,应使用HandlerInterceptor接口。HandlerInterc......
  • windows日志怎么查看(含windows事件ID状态码)
    要查看Windows异常重启日志,可以按照以下步骤进行操作:打开“事件查看器”:在Windows操作系统中,按下Win+R键,在运行对话框中输入“eventvwr.msc”,然后点击“确定”按钮。在“事件查看器”窗口中,展开“Windows日志”文件夹,然后选择“系统”。在右边的窗格中,你会看到所有系统......
  • 查看Linux下软件的开源许可证协议
    [root@sre01~]#rpm-qikernelName:kernelVersion:3.10.0Release:1062.el7Architecture:x86_64InstallDate:Sat13Apr202403:44:00PMCSTGroup:SystemEnvironment/KernelSize:67060903License:GPLv2......
  • Monaco Editor 实现一个日志查看器
    MonacoEditor实现一个日志查看器 我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:文长前言在WebIDE中,控制台中展示日志是至关重要的功能。MonacoEditor作为一个强大的代码......
  • springmv的过滤器和拦截器的区别是什么
    一个请求进来的时候,先交给web服务器提供的过滤器,例如springboot项目,提供的服务器也就是内置的tomcat,过滤器处理完成以后,然后会来到servlet,有一个dispatcherServlet会调用拦截器,再由dispatcherServlet分发给对应的Controller,处理完请求后,会原路返回,再回到拦截器,再回到过滤器,最终响......
  • 文档管理 | 文档目录结构和文件情况的查看与导出
    1.操作原理tree命令用于以树形结构显示目录中的文件和子目录,也能将文件目录结构导出在Windows中。以下是它的一些常见用法:1.1基本语法tree[drive:][path][/F][/A]1.2参数说明[drive:][path]:指定要显示的驱动器和路径。如果不指定,则显示当前目录的结构。/F:显示每个......
  • Spingboot 定时任务与过滤器,拦截器
     在boot环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用Spring自带的定时任务处理器@Scheduled注解,另一种就是使用第三方框架Quartz,SpringBoot源自Spring+SpringMVC,因此天然具备这两个Spring中的定时任务实现策略,当然也支持Quartz1.定时任务@Sched......
  • DzzOffice网盘插件修复无权限的用户可以查看文件夹信息问题
    问题描述:在我的网盘页面,即访问域名://index.php?mod=explorer#home&fid=fid值,通过修改fid值可以使文件夹右侧信息显示非本人的。修复解释:在查询当前文件夹信息前先检查文件夹是否是我的网盘里的,如果是,在判断当前文件夹是否是当前用户的。修复方法:文件:dzz/explorer/dynamic......
  • P1020 [NOIP1999 提高组] 导弹拦截
    题意:求出一个最长单调不增子序列和最少的个数的单调不加的子序列的个数。根据dilworth:最少的全集个数等于最大的反链的元素个数。可以将求最少的个数的单调不加的子序列的个数转化为求最长上升子序列的长度。于是用二分+贪心来写点击查看代码#include<iostream>#include......