メインコンテンツへスキップ

クラス: WebRequest

クラス: WebRequest

リクエストのライフサイクルのさまざまな段階で、リクエストの内容を傍受および変更します。

プロセス: メイン
このクラスは、'electron'モジュールからエクスポートされません。Electron APIの他のメソッドの戻り値としてのみ使用できます。

WebRequestクラスのインスタンスは、SessionwebRequestプロパティを使用してアクセスします。

WebRequestのメソッドは、オプションのfilterlistenerを受け入れます。APIのイベントが発生すると、listener(details)listenerが呼び出されます。detailsオブジェクトはリクエストを記述します。

⚠️最後にアタッチされたlistenerのみが使用されます。listenerとしてnullを渡すと、イベントのサブスクライブが解除されます。

filterオブジェクトには、URLパターンに一致しないリクエストをフィルタリングするために使用されるURLパターンの配列であるurlsプロパティがあります。filterが省略されている場合、すべてのリクエストが一致します。

特定のイベントでは、listenercallbackとともに渡され、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 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、または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 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、または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 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、またはotherを指定できます。
      • referrer 文字列
      • timestamp 倍精度浮動小数点数
      • requestHeaders Record<string, string>

リクエストがサーバーに送信される直前に、listener(details)listenerが呼び出されます。このリスナーが起動されるまでに、前のonBeforeSendHeaders応答の変更が表示されます。

webRequest.onHeadersReceived([filter, ]listener)

  • filter WebRequestFilter (オプション)
  • listener 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、または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 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、またはotherを指定できます。
      • referrer 文字列
      • timestamp 倍精度浮動小数点数
      • responseHeaders Record<string, string[]> (オプション)
      • fromCache 真偽値 - レスポンスがディスクキャッシュからフェッチされたかどうかを示します。
      • statusCode 整数
      • statusLine 文字列

レスポンスボディの最初のバイトを受信すると、listener(details)listenerが呼び出されます。HTTPリクエストの場合、これはステータス行とレスポンスヘッダーが利用可能であることを意味します。

webRequest.onBeforeRedirect([filter, ]listener)

  • filter WebRequestFilter (オプション)
  • listener 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、またはotherを指定できます。
      • referrer 文字列
      • timestamp 倍精度浮動小数点数
      • redirectURL 文字列
      • statusCode 整数
      • statusLine 文字列
      • ip 文字列 (オプション) - リクエストが実際に送信されたサーバーのIPアドレス。
      • fromCache 真偽値
      • responseHeaders Record<string, string[]> (オプション)

サーバーが開始したリダイレクトが発生しようとすると、listener(details)listenerが呼び出されます。

webRequest.onCompleted([filter, ]listener)

  • filter WebRequestFilter (オプション)
  • listener 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、またはotherを指定できます。
      • referrer 文字列
      • timestamp 倍精度浮動小数点数
      • responseHeaders Record<string, string[]> (オプション)
      • fromCache 真偽値
      • statusCode 整数
      • statusLine 文字列
      • error 文字列

リクエストが完了すると、listener(details)listenerが呼び出されます。

webRequest.onErrorOccurred([filter, ]listener)

  • filter WebRequestFilter (オプション)
  • listener 関数 | null
    • details オブジェクト
      • id 整数
      • url 文字列
      • method 文字列
      • webContentsId 整数 (オプション)
      • webContents WebContents (オプション)
      • frame WebFrameMain (オプション)
      • resourceType 文字列 - mainFramesubFramestylesheetscriptimagefontobjectxhrpingcspReportmediawebSocket、またはotherを指定できます。
      • referrer 文字列
      • timestamp 倍精度浮動小数点数
      • fromCache 真偽値
      • error 文字列 - エラーの説明。

エラーが発生すると、listener(details)listenerが呼び出されます。