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

Request

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

要求が途中で失敗した場合、'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);

引数

戻り値


headers

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

リクエストHTTPヘッダーを含むオブジェクト。ヘッダー名には小文字が使用されます。このメソッドは、セキュリティ関連のヘッダー(クッキー関連のものを含む)を返さないことに注意してください。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

もしあれば、リクエストのPOSTボディ。

使用法

Request.postData();

戻り値


postDataBuffer

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

もしあれば、バイナリ形式のリクエストのPOSTボディ。

使用法

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

レンダリングエンジンが認識したリクエストのリソースタイプを含みます。リソースタイプは以下のいずれかです: document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other

使用法

Request.resourceType();

戻り値


response

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

一致する Response オブジェクトを返します。エラーのために応答が受信されなかった場合は null を返します。

使用法

Request.response();

戻り値


sizes

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

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

使用法

Request.sizes();

戻り値

  • サイズ#
    • requestBodySize int

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

    • requestHeadersSize int

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

    • responseBodySize int

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

    • responseHeadersSize int

      HTTPレスポンスメッセージの開始から(ボディの前の二重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");

戻り値

  • タイミング#
    • 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();

戻り値