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

Request

ページがネットワークリソースのリクエストを送信するたびに、Pageによって次のイベントシーケンスが発行されます。

  • Page.onRequest(handler) ページによってリクエストが発行されたときに発行されます。
  • Page.onResponse(handler) リクエストに対するレスポンスステータスとヘッダーが受信されたとき、または受信された場合に発行されます。
  • Page.onRequestFinished(handler) レスポンスボディがダウンロードされ、リクエストが完了したときに発行されます。

リクエストが途中で失敗した場合、'requestfinished'イベント(および場合によっては'response'イベントの代わりに)、Page.onRequestFailed(handler)イベントが発行されます。

404 や 503 などの HTTP エラーレスポンスは、HTTP の観点からは依然として成功したレスポンスであるため、リクエストは 'requestfinished' イベントで完了します。

リクエストが 'redirect' レスポンスを受け取った場合、リクエストは requestfinished イベントで正常に完了し、リダイレクトされた URL に新しいリクエストが発行されます。


メソッド

allHeaders

追加バージョン: v1.15 request.allHeaders

このリクエストに関連付けられたすべてのリクエスト HTTP ヘッダーを持つオブジェクト。ヘッダー名は小文字です。

使用例

Request.allHeaders();

戻り値


failure

v1.9より前に追加 request.failure

このメソッドは、requestfailed イベントで報告されているように、このリクエストが失敗した場合を除き、null を返します。

使用例

失敗したすべてのリクエストのログ出力例

page.onRequestFailed(request -> {
System.out.println(request.url() + " " + request.failure());
});

戻り値


frame

v1.9より前に追加 request.frame

このリクエストを開始したFrameを返します。

使用例

String frameUrl = request.frame().url();

戻り値

詳細

場合によってはフレームが利用できず、このメソッドが例外をスローすることに注意してください。

  • リクエストが Service Worker で発生した場合。request.serviceWorker() を使用して確認できます。
  • ナビゲーションリクエストが、対応するフレームが作成される前に発行された場合。Request.isNavigationRequest() を使用して確認できます。

すべてのケースを処理する例を次に示します。


headerValue

追加バージョン: v1.15 request.headerValue

名前が一致するヘッダーの値を返します。名前は大文字と小文字を区別しません。

使用例

Request.headerValue(name);

引数

  • name String#

    ヘッダーの名前。

戻り値


headers

v1.9より前に追加 request.headers

リクエスト HTTP ヘッダーを持つオブジェクト。ヘッダー名は小文字です。このメソッドは、cookie 関連のものを含むセキュリティ関連のヘッダーを返さないことに注意してください。cookie 情報を含むヘッダーの完全なリストについては、Request.allHeaders() を使用できます。

使用例

Request.headers();

戻り値


headersArray

追加バージョン: v1.15 request.headersArray

このリクエストに関連付けられたすべてのリクエスト HTTP ヘッダーを持つ配列。Request.allHeaders()とは異なり、ヘッダー名は大文字と小文字が区別されます。Set-Cookieなど、複数のエントリを持つヘッダーは、配列に複数回表示されます。

使用例

Request.headersArray();

戻り値

  • List<HttpHeader>#
    • name String

      ヘッダーの名前。

    • value String

      ヘッダーの値。


isNavigationRequest

v1.9より前に追加 request.isNavigationRequest

このリクエストがフレームのナビゲーションを駆動しているかどうか。

一部のナビゲーションリクエストは、対応するフレームが作成される前に発行されるため、Request.frame() は利用できません。

使用例

Request.isNavigationRequest();

戻り値


method

v1.9より前に追加 request.method

リクエストのメソッド(GET、POSTなど)

使用例

Request.method();

戻り値


postData

v1.9より前に追加 request.postData

リクエストのポストボディ(もしあれば)。

使用例

Request.postData();

戻り値


postDataBuffer

v1.9より前に追加 request.postDataBuffer

リクエストのポストボディをバイナリ形式で(もしあれば)。

使用例

Request.postDataBuffer();

戻り値


redirectedFrom

v1.9より前に追加 request.redirectedFrom

サーバーによってこのリクエストにリダイレクトされたリクエスト(もしあれば)。

サーバーがリダイレクトで応答すると、Playwright は新しい Request オブジェクトを作成します。2つのリクエストは、redirectedFrom() および redirectedTo() メソッドによって接続されます。複数のサーバーリダイレクトが発生した場合、redirectedFrom() を繰り返し呼び出すことで、リダイレクトチェーン全体を構築できます。

使用例

たとえば、ウェブサイト http://example.comhttps://example.com にリダイレクトする場合

Response response = page.navigate("http://example.com");
System.out.println(response.request().redirectedFrom().url()); // "http://example.com"

ウェブサイト https://google.com にリダイレクトがない場合

Response response = page.navigate("https://google.com");
System.out.println(response.request().redirectedFrom()); // null

戻り値


redirectedTo

v1.9より前に追加 request.redirectedTo

サーバーがリダイレクトで応答した場合にブラウザーによって発行される新しいリクエスト。

使用例

このメソッドは、Request.redirectedFrom() の反対です。

System.out.println(request.redirectedFrom().redirectedTo() == request); // true

戻り値


resourceType

v1.9より前に追加 request.resourceType

レンダリングエンジンによって認識されたリクエストのリソースタイプが含まれています。ResourceType は、documentstylesheetimagemediafontscripttexttrackxhrfetcheventsourcewebsocketmanifestother のいずれかになります。

使用例

Request.resourceType();

戻り値


response

v1.9より前に追加 request.response

一致する Response オブジェクトを返します。エラーによりレスポンスが受信されなかった場合は null を返します。

使用例

Request.response();

戻り値


sizes

追加バージョン: v1.15 request.sizes

指定されたリクエストのリソースサイズ情報を返します。

使用例

Request.sizes();

戻り値

  • Sizes#
    • requestBodySize int

      リクエストボディのサイズ(POSTデータペイロード)をバイト単位で示します。ボディがない場合は 0 に設定されます。

    • requestHeadersSize int

      HTTP リクエストメッセージの開始から、ボディの前の二重 CRLF まで(および二重 CRLF を含む)の合計バイト数。

    • responseBodySize int

      受信したレスポンスボディのサイズ(エンコード済み)をバイト単位で示します。

    • responseHeadersSize int

      HTTP レスポンスメッセージの開始から、ボディの前の二重 CRLF まで(および二重 CRLF を含む)の合計バイト数。


timing

v1.9より前に追加 request.timing

指定されたリクエストのリソースタイミング情報を返します。タイミング値のほとんどはレスポンス時に利用可能になり、responseEnd はリクエストが完了すると利用可能になります。詳細については、Resource Timing API を参照してください。

使用例

page.onRequestFinished(request -> {
Timing timing = request.timing();
System.out.println(timing.responseEnd - timing.startTime);
});
page.navigate("http://example.com");

戻り値

  • Timing#
    • startTime double

      1970年1月1日 00:00:00 UTC から経過したミリ秒単位のリクエスト開始時間

    • domainLookupStart double

      ブラウザーがリソースのドメイン名ルックアップを開始する直前の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • domainLookupEnd double

      ブラウザーがリソースのドメイン名ルックアップを開始した直後の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • connectStart double

      ユーザーエージェントがリソースを取得するためにサーバーへの接続を確立し始める直前の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • secureConnectionStart double

      ブラウザーが現在の接続を保護するためのハンドシェイクプロセスを開始する直前の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • connectEnd double

      ユーザーエージェントがリソースを取得するためにサーバーへの接続を確立し始める直前の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • requestStart double

      ブラウザーがサーバー、キャッシュ、またはローカルリソースからのリソースのリクエストを開始する直前の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • responseStart double

      ブラウザーがサーバー、キャッシュ、またはローカルリソースからレスポンスの最初のバイトを受信した直後の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。

    • responseEnd double

      ブラウザーがリソースの最後のバイトを受信した直後、またはトランスポート接続が閉じられる直前のいずれか早い方の時間。値は startTime を基準としたミリ秒単位で指定され、利用できない場合は -1 です。


url

v1.9より前に追加 request.url

リクエストの URL。

使用例

Request.url();

戻り値