新的Chrome版本72+不会发送requestHeaders。
有一个solution:
DevTools协议网络检查在网络堆栈中位于很高的位置。这种架构不允许我们收集所有添加到请求中的标头。因此我们在Network.requestWillBeSent和Network.requestIntercepted中报告的内容不完整;在可预见的将来,它将保持这种状态。 有几种获取真实请求头的方法:
•粗略的一种是使用代理
•更优雅的一种是依靠Network.responseReceivedDevTools协议事件。实际标头在Network.Response中的requestHeaders字段中报告。
这与旧的chrome兼容,但与最新的chrome兼容。这是我为可能测试的版本做的一个小总结
Chrome v67的解决方案是添加此标志以禁用Site Isolation:
chrome --disable-site-isolation-trials --disable-features=IsolateOrigins,site-per-process --disable-web-security
现在所有这些都不适用于最新的chrome v73 也许是由于这个原因造成的:
Issue 932674:v72破坏了跨域iframe中的devtools请求拦截
您可以使用自m74起可用的访存协议域
grant的解决方案也不起作用,Fetch.requestPaused不包含请求标头...
我发现了一些可能导致该问题的信息
DevTools:不要为跨域请求公开原始标头
DevTools:不报告受保护子资源的原始标题和cookie。如果子资源请求的网站需要保护其文档,请不要将原始标头和cookie发送到框架的渲染器中。
还是由HTTP / 2服务器引起的?
HTTP / 2标头帧因子是否包含在响应的encodingDataLength中? (远程调试协议)
...
headersText
对于HTTP / 2请求未定义 link
1-如何使用带有Chrome v73 +的Chrome Devtool协议获取请求标头?
2-网络扩展能否解决?
3-是否还有另一种方法可以保持稳定和持久耐用?就像我试图避免的tshark + sslkeylogfile一样。谢谢