Electron参考手册
网页要求 | WebRequest
网页要求 | WebRequest
在生命周期的不同阶段拦截并修改请求的内容。
过程:Main
WebRequest类的实例通过使用Session的webRequest属性来访问。
接受一个可选的filter和一个listener的WebRequest方法。在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目的-
urlsString [] - 将用于过滤出与 URL 模式不匹配的请求的 URL 模式数组。
-
-
listener功能-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
uploadData上传数据 []
-
-
- `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目的-
urls串 [] - 将用于过滤出与 URL 模式不匹配的请求的 URL 模式数组。
-
-
listener功能
listener将被用listener(details, callback)发送 HTTP 请求之前,一旦请求头可用。这可能发生在与服务器建立 TCP 连接之后,但在发送任何 http 数据之前。
-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
requestHeaders目的
-
-
callback功能-
response目的-
cancel布尔(可选) -
requestHeaders对象(可选) - 提供时,将使用这些标题进行请求。
-
-
callback有与被调用response的对象。
webRequest.onSendHeaders([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与 URL 模式不匹配的请求的 URL 模式数组。
-
-
listener功能-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
requestHeaders目的
-
-
请求将在请求发送到服务器之前listener被调用,listener(details)在onBeforeSendHeaders此侦听器被触发时,前一个响应的修改是可见的。
webRequest.onHeadersReceived([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与 URL 模式不匹配的请求的 URL 模式数组。
-
-
listener功能
当收到请求的 HTTP 响应头时,listener将会使用该参数进行调用listener(details, callback)。
-
details目的-
id串 -
url串 -
method串 -
resourceType串 -
timestamp对 -
statusLine串 -
statusCode整数 -
responseHeaders目的
-
-
callback功能-
response目的-
cancel布尔 -
responseHeaders对象(可选) - 提供时,假定服务器已使用这些标头进行响应。 -
statusLine字符串(可选) - 应在覆盖时提供,responseHeaders以更改标题状态,否则将使用原始响应标题的状态。
-
-
callback有与被调用response的对象。
webRequest.onResponseStarted([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与URL模式不匹配的请求的URL模式数组。
-
-
listener功能-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
responseHeaders目的 -
fromCache布尔值 - 指示是否从磁盘缓存中获取响应。 -
statusCode整数 -
statusLine串
-
-
当收到响应主体的第一个字节时,listener将会调用listener(details)该参数。对于 HTTP 请求,这意味着状态行和响应标头可用。
webRequest.onBeforeRedirect([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与URL模式不匹配的请求的URL模式数组。
-
-
listener功能-
details目的-
id串 -
url串 -
method串 -
resourceType串 -
timestamp对 -
redirectURL串 -
statusCode整数 -
ip字符串(可选) - 请求实际发送到的服务器IP地址。 -
fromCache布尔 -
responseHeaders目的
-
-
listener将被用listener(details)在服务器启动的重定向即将发生。
webRequest.onCompleted([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与URL模式不匹配的请求的URL模式数组。
-
-
listener功能-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
responseHeaders目的 -
fromCache布尔 -
statusCode整数 -
statusLine串
-
-
listener将被用listener(details)在一个请求完成。
webRequest.onErrorOccurred([filter, ]listener)
-
filter目的-
urlsString [] - 将用于过滤出与URL模式不匹配的请求的URL模式数组。
-
-
listener功能-
details目的-
id整数 -
url串 -
method串 -
resourceType串 -
timestamp对 -
fromCache布尔 -
error字符串 - 错误描述。
-
-
listener将被用listener(details)时发生错误。
| 网页要求 | WebRequest | ||
|---|---|---|
| 网页要求 | WebRequest | 详细 |
Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
| 主页 | https://electron.atom.io/ |
| 源码 | https://github.com/electron/electron |
| 发布版本 | 1.7.9 |
加载中,请稍侯......