Classe : WebRequest
Classe : WebRequest
Intercepte et modifie le contenu d'une requête à différents stades de son existence.
Process: Main
This class is not exported from the 'electron' module. Elle n'est disponible qu'en tant que valeur de retour des autres méthodes dans l'API Electron.
Les instances de la classe WebRequest sont accessibles à l'aide de la propriété WebRequest d'une Session.
Les méthodes de WebRequest peuvent de manière facultative recevoir un filter et un listener. Le listener va être appelé par listener(details) quand l'événement de l'API est émis. L'objet details représente la requête.
⚠️ Seul le dernier listener associé sera utilisé. Le passage de null en tant que listener annulera l'abonnement à l'événement.
L'objet filter possède une propriété url qui est un tableau de modèles d'URL qui seront utilisés pour filtrer les requêtes qui ne satisfont pas aux modèles. Si filter est omis, toutes les requêtes seront jugées comme conformes.
Pour certains événements, le listener est passé accompagné d'une callback, qui doit appelée avec un objet responselorsque le listener a fini son travail.
Exemple d'ajout de l'en-tête User-Agent pour les requêtes :
const { session } = require('electron')
// Modifie le user agent pour toutes les requêtes concernant les url indiquées.
const filter = {
urls: ['https://*.github.com/*', '*://electron.github.io/*']
}
session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => {
details.requestHeaders['User-Agent'] = 'MyAgent'
callback({ requestHeaders: details.requestHeaders })
})
Méthodes d’instance
Les méthodes suivantes sont disponibles pour les instances de WebRequest :
webRequest.onBeforeRequest([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoubleuploadDataUploadData[]
callbackFunction- Objet
responsecancelboolean)redirectURLstring (facultatif) - Empêche la requête originale d'être envoyée ou complétée, à la place, celle ci est redirigée vers l'URL donnée.
- Objet
- Objet
Le listener sera appelé par listener(details, callback) lorsqu'une requête est sur le point de se produire.
uploadData est un tableau d'objets UploadData.
La callback doit être appelé avec un objet response.
Exemples d'urls valides :
'<all_urls>'
'http://foo:1234/'
'http://foo.com/'
'http://foo:1234/bar'
'*://*/*'
'*://example.com/*'
'*://example.com/foo/*'
'http://*.foo:1234/'
'file://foo:1234/bar'
'http://foo:*/'
'*://www.foo.com/'
webRequest.onBeforeSendHeaders([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoubleuploadDataUploadData[] (optional)- Enregistrement
requestHeaders<string, string>
callbackFunction- Objet
beforeSendResponsecancelboolean)requestHeadersRecord<string, string | string[]> (optional) - When provided, request will be made with these headers.
- Objet
- Objet
Le listener sera appelé par listener(details, callback) avant d’envoyer une requête HTTP, et une fois que les en-têtes de requête sont disponibles. Cela peut se produire après une connexion TCP au serveur, mais avant que des données http ne soient envoyées.
La callback doit être appelée avec un objet response.
webRequest.onSendHeaders([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDouble- Enregistrement
requestHeaders<string, string>
- Objet
Le listener sera appelé par listener(details) juste avant qu'une requête ne soit envoyée au serveur, les modifications de la réponse onBeforeSendHeaders précédente sont visibles au moment où l'écouteur est déclenché.
webRequest.onHeadersReceived([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoublestatusLinestringstatusCodeIntegerresponseHeadersRecord<string, string[]> (facultatif)
callbackFunction- Objet
headersReceivedResponsecancelboolean)responseHeadersRecordstring, string | string[] (facultatif) - Lorsque fourni, le serveur est supposé avoir répondu avec ces en-têtes.statusLinestring (optionelle) - Doit être fourni lorsque vous remplacezresponseHeaderspour changer le statut de l'en-tête sinon le statut de l'en-tête de la réponse originale sera utilisé.
- Objet
- Objet
Le listener sera appelé par listener(details, callback) à la réception des en-têtes de réponse HTTP de la requête.
La callback doit être appelée avec un objet response.
webRequest.onResponseStarted([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoubleresponseHeadersRecord<string, string[]> (facultatif)fromCachebooléen - Indique si la réponse a été extraite du cache disque.statusCodeIntegerstatusLinestring
- Objet
Le listener sera appelé par listener(details) lors de la réception du premier octet de la réponse. Pour les requêtes HTTP, cela signifie que la ligne de statut et les en-têtes de réponse sont disponibles.
webRequest.onBeforeRedirect([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoubleredirectURLstringstatusCodeIntegerstatusLinestringipstring (optionelle) - L'adresse IP du serveur à laquelle la requête a été effectivement envoyée.fromCachebooleanresponseHeadersRecord<string, string[]> (facultatif)
- Objet
Le listener sera appelé par listener(details) lorsqu'une redirection initiée par le serveur va se produire.
webRequest.onCompleted([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoubleresponseHeadersRecord<string, string[]> (facultatif)fromCachebooleanstatusCodeIntegerstatusLinestringerrorstring
- Objet
Le listener sera exécuté par listener(details) lorsqu'une requète est complétée.
webRequest.onErrorOccurred([filter, ]listener)
filterWebRequestFilter (optional)listenerFunction | null- Objet
detailsidIntegerurlstringmethodstringwebContentsIdInteger (facultatif)webContentsWebContents (facultatif)frameWebFrameMain | null (optional) - Requesting frame. May benullif accessed after the frame has either navigated or been destroyed.resourceTypestring - Peut prendre une des valeurs suivantesmainFrame,subFrame,stylesheet,script,image,font,object,xhr,ping,cspReport,media,webSocketouother.referrerstringtimestampDoublefromCachebooleanerrorstring - La description de l'erreur.
- Objet
Le listener sera appelé par listener(details) lorsqu'une erreur se produit.