网页要求 | 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
目的
- `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)
时发生错误。