- 打开Chrome并导航到 google.com
- 在Fiddler中使用"任何进程"按钮选择Chrome标签
- 在Fiddler中,"任何进程"按钮更改为"chrome:11788">
- 在 Chrome 标签页中搜索内容
我希望 Fiddler 捕获流量,但不显示会话。如果我使用"任何进程",则会从所有应用程序捕获流量。
">过滤器"选项卡中的"使用过滤器"复选框处于未选中状态。
我卸载并重新安装了小提琴手。
我安装了最新版本。
我还能做什么?
现代版本的Google Chrome使用单独的进程来发出请求;因此,由"任何进程"工具检测到的主窗口的进程是不同的。
该团队正在考虑修复,但目前尚未实施,请参阅不再适用于 Chrome 的"定位任何进程"功能。
同时,可能的解决方法是:
-
使用其他过滤功能 - 例如,捕获来自 Chrome 的请求,然后从"会话"视图中选择
right click -> Filter now -> Show only process=<process number>
。 -
过滤其他所有内容。在《提琴手》中,取消选中
Tools -> Options -> Connections -> Act as system proxy on startup
。然后使用手动指定的代理设置启动Chrome,指向Fiddler正在侦听的端口:chrome --proxy-server=http://localhost:8888
这样,唯一捕获的流量将来自此Chrome实例。
详细版本:为什么Fiddler的进程选择器工具不再适用于Chrome
简要版本:出于安全和性能原因,Chrome 现在通过单独的网络服务处理网络请求。因此,当您将Fiddler的"任何进程"工具指向任何Chrome窗口/选项卡上时,您实际上指向Chrome浏览器的UI(浏览器进程(。
有一个快速的解决方法:
- 在 Chrome 浏览器中导航到
chrome://flags/#network-service-in-process
。您将看到Runs network service in-process
,其值将设置为"默认"。 - 将值从">默认"更改为"已启用"。通过这样做,您告诉Chrome处理来自浏览器进程的网络请求,该进程也处理UI。
- 重新启动浏览器。现在,您应该能够通过将任何进程工具指向任何 Chrome 标签来捕获网络请求。
完成开发活动后,不要忘记将标志设置回默认。这将提供更好的性能。
注意:在撰写本文时,我使用的是Chrome 84。