在浏览器和渲染器进程中使用系统代理

Kev*_*Z01 8 chromium electron

在我的电子应用程序中,我编写了一个在主进程和渲染器进程中执行的 RestClient。在主进程中完成的第一个请求是使用来自电子的网络库完成的,它成功地使用了系统代理设置。

在渲染进程中执行的下一个请求不能使用 net 库,因为它只属于 main。因此我切换到普通的 https 请求,但这不使用系统代理设置。

有没有办法在渲染进程中使用系统代理?

编辑:也许是一个更普遍的问题:电子发出网络请求的最佳实践是什么?是否有一些标准的方式来使用 http/https、request、net 或 fetch?哪种方式会使用系统代理?

Tob*_*ias 4

我在 Windows 上对此进行了测试,它可以在渲染器中使用 fetch() 顺利运行 使用和不使用系统代理的请求


但我认为此时的最佳实践是通过 ipcRenderer 从渲染器进程向主进程发送消息。

所以在你的渲染器进程中发送一条消息

const ipc = require('electron').ipcRenderer;
ipc.send('hello','a string', 10);
Run Code Online (Sandbox Code Playgroud)

并在您的主流程中接收消息并像第一个一样发出您的 api 请求

ipc.on('fromMain', (event, messages) => {
    // do your api request and send data back
}
Run Code Online (Sandbox Code Playgroud)

之后将数据发送回渲染器进程

为什么?
优点:前后端严格分离,API查询只有一种方法,当然“不要重复自己”