Electron - 从BrowserWindow的loadUrl()中获取HTTP响应头

4
我正在处理一个测试项目,该项目托管在SSO环境中的计算机上。 实际上,我指向了托管在此环境内部的服务器上的一个网页,并且需要访问请求的cookie(刚获取到)和HTTP头信息。 我研究了文档,似乎没有针对loadUrl()方法的回调函数或可用于获取这些头信息的选项。 参考链接:

https://electronjs.org/docs/api/browser-window

loadUrl有第二个可选参数,被定义为Electron.loadURLOption,但似乎并没有什么帮助。

interface LoadURLOptions {
    /**
     * An HTTP Referrer url.
     */
    httpReferrer?: (string) | (Referrer);
    /**
     * A user agent originating the request.
     */
    userAgent?: string;
    /**
     * Extra headers separated by "\n"
     */
    extraHeaders?: string;
    postData?: (UploadRawData[]) | (UploadFile[]) | (UploadBlob[]);
    /**
     * Base url (with trailing path separator) for files to be loaded by the data url.
     * This is needed only if the specified url is a data url and needs to load other
     * files.
     */
    baseURLForDataURL?: string;
}

我会感激任何形式的帮助,谢谢

1个回答

2

您可以通过为Web上下文会话的webRequest属性注册onCompletedonHeadersReceived回调函数来实现此目的,例如:

  const url = 'https://example.com/your/page';
  browserWindow.webContents.session.webRequest.onCompleted({ urls: [url] }, (details) => {
    // Access request headers via details.requestHeaders
    // Access response headers via details.responseHeaders
  });

  browserWindow.loadURL(url);
onHeadersReceived有点棘手,因为需要调用传递的回调函数才能继续页面加载过程。
相关文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接