在我的电子应用程序中,我编写了一个RestClient,它在主进程和渲染器进程中执行。在主过程中完成的第一个请求是通过电子的网络库完成的,它成功使用了系统代理设置。
在渲染器进程中执行的下一个请求不能使用网络库,因为它仅属于main。因此,我切换到正常的https请求,但这不使用系统代理设置。
是否可以在渲染器过程中使用系统代理?
编辑:也许是一个更普遍的问题:电子提出Web请求的最佳实践是什么?有使用HTTP / https,request,net或fetch的一些标准方法吗?哪种方式将使用系统代理?
答案 0 :(得分:3)
我在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查询方法,当然“不要重复自己”