网页要求 | WebRequest

类:WebRequest

在生命周期的不同阶段拦截并修改请求的内容。

过程:Main

WebRequest类的实例通过使用SessionwebRequest属性来访问。

接受一个可选的filter和一个listenerWebRequest方法。在listener将被用listener(details)在 API 的事件已经发生。details对象描述了请求。作为listener传递的null将从事件取消。

filter对象有一个urls属性,它是一组 URL 模式,用于过滤与 URL 模式不匹配的请求。如果filter省略,则所有请求都将被匹配。

对于某些事件,listener是通过一个callback传递,它应该当listener完成其工作时调在一个response对象用。

为请求添加User-Agent标头的示例:

const {session} = require('electron') // Modify the user agent for all requests to the following urls. const filter = { urls: ['https://*.github.com/*', '*://electron.github.io'] } session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => { details.requestHeaders['User-Agent'] = 'MyAgent' callback{cancel: false, requestHeaders: details.requestHeaders}) })

实例方法

以下方法适用于以下WebRequest情况:

webRequest.onBeforeRequest([filter, ]listener)

  • filter 目的

- `callback` Function - `response` Object - `cancel` Boolean (optional) - `redirectURL` String (optional) - The original request is prevented from being sent or completed and is instead redirected to the given URL.

当一个请求即将发生,listener将被称为listener(details, callback)

uploadData是一个UploadData对象的数组。

callback有与被调用response的对象。

webRequest.onBeforeSendHeaders([filter, ]listener)

  • filter 目的

listener将被用listener(details, callback)发送 HTTP 请求之前,一旦请求头可用。这可能发生在与服务器建立 TCP 连接之后,但在发送任何 http 数据之前。

  • details 目的

callback有与被调用response的对象。

webRequest.onSendHeaders([filter, ]listener)

  • filter 目的

请求将在请求发送到服务器之前listener被调用,listener(details)onBeforeSendHeaders此侦听器被触发时,前一个响应的修改是可见的。

webRequest.onHeadersReceived([filter, ]listener)

  • filter 目的

当收到请求的 HTTP 响应头时,listener将会使用该参数进行调用listener(details, callback)

  • details 目的

callback有与被调用response的对象。

webRequest.onResponseStarted([filter, ]listener)

  • filter 目的

当收到响应主体的第一个字节时,listener将会调用listener(details)该参数。对于 HTTP 请求,这意味着状态行和响应标头可用。

webRequest.onBeforeRedirect([filter, ]listener)

  • filter 目的

listener将被用listener(details)在服务器启动的重定向即将发生。

webRequest.onCompleted([filter, ]listener)

  • filter 目的

listener将被用listener(details)在一个请求完成。

webRequest.onErrorOccurred([filter, ]listener)

  • filter 目的

listener将被用listener(details)时发生错误。