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

Using system proxy in browser and renderer process

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

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

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

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

我在 windows 上测试了这个,它在渲染器中使用 fetch() 运行顺利


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

因此在您的渲染器进程中发送消息

const ipc = require('electron').ipcRenderer;
ipc.send('hello','a string', 10);

并在您的主进程中接收消息并像第一个

一样发出您的 api 请求
ipc.on('fromMain', (event, messages) => {
    // do your api request and send data back
}

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

为什么?
优点:前后端严格分离,API查询只有一种方法,当然"don't repeat yourself"