【问题标题】:Chrome DevTools Protocol - intercepting and modifying websocket requestsChrome DevTools 协议 - 拦截和修改 websocket 请求
【发布时间】:2020-01-11 09:46:40
【问题描述】:

我正在尝试使用Chrome DevTools Protocol (CDP) 来拦截网络请求并对其进行修改。

问题是我需要修改 WebSocket 请求的标头。这可能吗?

我可以通过先发送消息轻松修改“正常”请求的标头:

Network.enable
Network.setRequestInterception

然后收听Network.requestIntercepted 消息并回复适当的Network.continueInterceptedRequest 消息。

但是,Network.requestIntercepted 不会被 WebSockets 调用。我可以收听Network.webSocketWillSendHandshakeRequest,但这只能让我阅读请求,我看不到任何修改它的方法。

有没有办法做到这一点,还是目前不可能?

【问题讨论】:

  • 文档说 setRequestInterception 已被弃用,建议使用Fetch。后者的 RequestPattern 类型中有 WebSocket,所以它可能实际上可以拦截它。
  • @wOxxOm:感谢您的评论,但它似乎不起作用....我尝试使用它(尝试使用和不使用显式模式),但就像旧版本一样似乎拦截“正常”请求,而不是 websocket 请求......
  • 关于无法使用 WebSocket 资源类型的 Fetch 的错误报告:bugs.chromium.org/p/chromium/issues/detail?id=1283412

标签: google-chrome google-chrome-devtools chrome-devtools-protocol


【解决方案1】:

在对所有可能的组合进行进一步测试后,我得出的结论是,很遗憾,这是无法做到的。

如果我错了,请随时纠正我,我会接受你的回答并删除这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多