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

时间:2019-07-10 14:02:11

标签: electron chromium

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

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

是否可以在渲染器过程中使用系统代理?

编辑:也许是一个更普遍的问题:电子提出Web请求的最佳实践是什么?有使用HTTP / https,request,net或fetch的一些标准方法吗?哪种方式将使用系统代理?

1 个答案:

答案 0 :(得分:3)

我在Windows上对此进行了测试,并与渲染器中的fetch()一起平稳运行 request with and without system proxy


但是我认为目前最佳实践是通过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查询方法,当然“不要重复自己”