相关疑难解决方法(0)

我们如何只在某些路径中使用 electron.protocol.interceptFileProtocol,而让其他请求保持不变?

我想拦截某些 HTTP 请求并用文件替换它们。所以我想我可以这样使用electron.protocol.interceptFileProtocol

protocol.interceptFileProtocol('http', (request, callback) => {
  // intercept only requests to "http://example.com"
  if (request.url.startsWith("http://example.com")) {
    callback("/path/to/file")
  }

  // otherwise, let the HTTP request behave like normal.
  // But how?
})
Run Code Online (Sandbox Code Playgroud)

http除了http://example.com继续正常工作之外,我们如何允许其他请求?

javascript electron

8
推荐指数
1
解决办法
2382
查看次数

如何修改 Electron 中的响应

假设我正在使用一个GET请求https://example.com,响应如下:

This is a response message.
Run Code Online (Sandbox Code Playgroud)

我将如何以某种方式修改它,以便在我的代码中,以便它可以将响应更改为如下所示:

This is a MODIFIED response message.
Run Code Online (Sandbox Code Playgroud)

例如,如果我的 Electron 应用程序要导航到https://example.com,屏幕将显示修改后的内容而不是原始内容。

本质上,我试图从字面上修改请求。

我的代码基于这个问题,但它只显示了预先输入的概念证明Buffer,因为在我的情况下,我想修改响应而不是直接替换它。所以,我的代码如下所示:

This is a response message.
Run Code Online (Sandbox Code Playgroud)

这应该手动请求 URL、获取响应并返回它。如果没有协议事件,它可以工作并给我一个响应,但经过一些调试后,这段代码始终一遍又一遍地调用相同的 URL,但没有响应。

还有WebRequest API,但是没有办法修改响应体,只能修改请求头&相关内容。

我还没有完全研究基于 Chromium 的解决方案,但是在查看了这个之后,我不确定是否可以修改响应,以便它首先出现在我的应用程序端。此外,我不熟悉到处发送的 Chromium/Puppeteer 消息。

有没有一种优雅的方法让 Electron 获取 URL 响应/请求,使用 headers/body/等调用 URL,然后保存并修改响应以在 Electron 中显示不同?

node.js electron

5
推荐指数
0
解决办法
647
查看次数

标签 统计

electron ×2

javascript ×1

node.js ×1