【问题标题】:Capture webview requests and responses捕获 webview 请求和响应
【发布时间】:2020-05-06 01:49:47
【问题描述】:

我正在创建一个应用程序,用户可以在其中通过webview 元素浏览网页。

<webview src='user-generated'></webview>

我希望能够捕获该过程中生成的所有请求和响应。过去两个小时我一直在四处寻找,试图弄清楚如何做到这一点,但没有发现任何与此相关的东西。

我读过一些关于使用 session 检索会话 cookie 的内容,并且我曾想象过请求和响应等其他内容,尽管它似乎没有返回任何有用的东西。

webview.addEventListener('dom-ready', function(){
  console.log(remote.getCurrentWindow().webContents.session)
})

有什么方法可以捕获所有请求和响应,最好是webview


这是我目前得到的,虽然它返回的似乎是请求或响应,但我还不确定它是否来自 webview。明天我得仔细看看。

主要

ipcMain.on('asynchronous-message', (event, arg) => {
  session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
    event.reply('asynchronous-reply', details)
    callback({ requestHeaders: details.requestHeaders })
  })
})

渲染器

ipcRenderer.send('asynchronous-message', webview) // Should I be sending `webview` as the argument?
ipcRenderer.on('asynchronous-reply', (event, payload) => {
  console.log(paylod)
})

【问题讨论】:

  • 你能看看这个吗? stackoverflow.com/questions/50974767/…
  • @AritraChakraborty 我已经在 4 小时前看到了那个帖子。我不明白它如何让我做我想做的事?无论如何,谢谢

标签: javascript node.js webview electron httpresponse


【解决方案1】:

您可以在 webview 会话中访问 onBeforeSendHeaders。获取会话的最简单方法是设置 webview 分区。

<webview src='user-generated' partition='my-webview-partition'></webview>

主要

var ses = session.fromPartition('my-webview-partition');
ses.webRequest.onBeforeRequestHeaders((details, callback) => {
  details.requestHeaders['User-Agent'] = 'MyAgent'
  callback({ requestHeaders: details.requestHeaders })
});

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多