クラス: WebRequest
クラス: WebRequest
リクエストのライフサイクルのさまざまな段階で、リクエストの内容を傍受および変更します。
プロセス: メイン
このクラスは、'electron'
モジュールからエクスポートされません。Electron APIの他のメソッドの戻り値としてのみ使用できます。
WebRequest
クラスのインスタンスは、Session
のwebRequest
プロパティを使用してアクセスします。
WebRequest
のメソッドは、オプションのfilter
とlistener
を受け入れます。APIのイベントが発生すると、listener(details)
でlistener
が呼び出されます。details
オブジェクトはリクエストを記述します。
⚠️最後にアタッチされたlistener
のみが使用されます。listener
としてnull
を渡すと、イベントのサブスクライブが解除されます。
filter
オブジェクトには、URLパターンに一致しないリクエストをフィルタリングするために使用されるURLパターンの配列であるurls
プロパティがあります。filter
が省略されている場合、すべてのリクエストが一致します。
特定のイベントでは、listener
はcallback
とともに渡され、listener
が作業を完了したらresponse
オブジェクトを使用してcallback
を呼び出す必要があります。
リクエストに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({ requestHeaders: details.requestHeaders })
})
インスタンスメソッド
WebRequest
のインスタンスでは、次のメソッドを使用できます
webRequest.onBeforeRequest([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数uploadData
UploadData[]
callback
関数response
オブジェクトcancel
真偽値 (オプション)redirectURL
文字列 (オプション) - 元のリクエストは送信または完了が妨げられ、代わりに指定されたURLにリダイレクトされます。
リクエストが発生しようとすると、listener(details, callback)
でlistener
が呼び出されます。
uploadData
は、UploadData
オブジェクトの配列です。
callback
は、response
オブジェクトを使用して呼び出す必要があります。
有効な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)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数uploadData
UploadData[] (オプション)requestHeaders
Record<string, string>
callback
関数beforeSendResponse
オブジェクトcancel
真偽値 (オプション)requestHeaders
Record<string, string | string[]> (オプション) - 指定された場合、これらのヘッダーを使用してリクエストが行われます。
HTTPリクエストを送信する前、リクエストヘッダーが利用可能になると、listener(details, callback)
でlistener
が呼び出されます。これは、サーバーへのTCP接続が確立された後、HTTPデータが送信される前に行われる可能性があります。
callback
は、response
オブジェクトを使用して呼び出す必要があります。
webRequest.onSendHeaders([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数requestHeaders
Record<string, string>
リクエストがサーバーに送信される直前に、listener(details)
でlistener
が呼び出されます。このリスナーが起動されるまでに、前のonBeforeSendHeaders
応答の変更が表示されます。
webRequest.onHeadersReceived([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数statusLine
文字列statusCode
整数responseHeaders
Record<string, string[]> (オプション)
callback
関数headersReceivedResponse
オブジェクトcancel
真偽値 (オプション)responseHeaders
Record<string, string | string[]> (オプション) - 指定した場合、サーバーはこれらのヘッダーで応答したと見なされます。statusLine
文字列 (オプション) - ヘッダーのステータスを変更するためにresponseHeaders
をオーバーライドする場合は、提供する必要があります。そうでない場合は、元のレスポンスヘッダーのステータスが使用されます。
リクエストのHTTPレスポンスヘッダーが受信されると、listener(details, callback)
でlistener
が呼び出されます。
callback
は、response
オブジェクトを使用して呼び出す必要があります。
webRequest.onResponseStarted([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数responseHeaders
Record<string, string[]> (オプション)fromCache
真偽値 - レスポンスがディスクキャッシュからフェッチされたかどうかを示します。statusCode
整数statusLine
文字列
レスポンスボディの最初のバイトを受信すると、listener(details)
でlistener
が呼び出されます。HTTPリクエストの場合、これはステータス行とレスポンスヘッダーが利用可能であることを意味します。
webRequest.onBeforeRedirect([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数redirectURL
文字列statusCode
整数statusLine
文字列ip
文字列 (オプション) - リクエストが実際に送信されたサーバーのIPアドレス。fromCache
真偽値responseHeaders
Record<string, string[]> (オプション)
サーバーが開始したリダイレクトが発生しようとすると、listener(details)
でlistener
が呼び出されます。
webRequest.onCompleted([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数responseHeaders
Record<string, string[]> (オプション)fromCache
真偽値statusCode
整数statusLine
文字列error
文字列
リクエストが完了すると、listener(details)
でlistener
が呼び出されます。
webRequest.onErrorOccurred([filter, ]listener)
filter
WebRequestFilter (オプション)listener
関数 | nulldetails
オブジェクトid
整数url
文字列method
文字列webContentsId
整数 (オプション)webContents
WebContents (オプション)frame
WebFrameMain (オプション)resourceType
文字列 -mainFrame
、subFrame
、stylesheet
、script
、image
、font
、object
、xhr
、ping
、cspReport
、media
、webSocket
、またはother
を指定できます。referrer
文字列timestamp
倍精度浮動小数点数fromCache
真偽値error
文字列 - エラーの説明。
エラーが発生すると、listener(details)
でlistener
が呼び出されます。