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このリクエストに関連付けられたすべてのリクエストHTTPヘッダーを含むオブジェクトです。ヘッダー名には小文字が使用されます。
使用法
Request.allHeaders();
戻り値
failure
v1.9より前に追加このメソッドは、requestfailed
イベントによって報告されたように、この要求が失敗した場合にのみ、それ以外の場合は null
を返します。
使用法
失敗したすべてのリクエストのログ記録の例
page.onRequestFailed(request -> {
System.out.println(request.url() + " " + request.failure());
});
戻り値
frame
v1.9より前に追加このリクエストを開始した Frame を返します。
使用法
String frameUrl = request.frame().url();
戻り値
詳細
場合によってはフレームが利用できない場合があり、このメソッドは例外をスローすることに注意してください。
- Service Worker からリクエストが発行された場合。これは
request.serviceWorker()
で確認できます。 - 対応するフレームが作成される前にナビゲーションリクエストが発行された場合。これは Request.isNavigationRequest() で確認できます。
すべてのケースを処理する例を以下に示します。
headerValue
追加バージョン: v1.15名前に一致するヘッダーの値を返します。名前は大文字と小文字を区別しません。
使用法
Request.headerValue(name);
引数
戻り値
headers
v1.9より前に追加リクエストHTTPヘッダーを含むオブジェクト。ヘッダー名には小文字が使用されます。このメソッドは、セキュリティ関連のヘッダー(クッキー関連のものを含む)を返さないことに注意してください。cookie
情報を含むヘッダーの完全なリストについては、Request.allHeaders() を使用できます。
使用法
Request.headers();
戻り値
headersArray
追加バージョン: v1.15このリクエストに関連付けられたすべてのリクエストHTTPヘッダーの配列。 Request.allHeaders() とは異なり、ヘッダー名は大文字小文字の区別をしません。Set-Cookie
のように複数のエントリを持つヘッダーは、配列内に複数回表示されます。
使用法
Request.headersArray();
戻り値
isNavigationRequest
v1.9より前に追加このリクエストがフレームのナビゲーションを駆動しているかどうか。
一部のナビゲーションリクエストは、対応するフレームが作成される前に発行されるため、Request.frame() が利用できない場合があります。
使用法
Request.isNavigationRequest();
戻り値
method
v1.9より前に追加リクエストのメソッド (GET、POSTなど)
使用法
Request.method();
戻り値
postData
v1.9より前に追加もしあれば、リクエストのPOSTボディ。
使用法
Request.postData();
戻り値
postDataBuffer
v1.9より前に追加もしあれば、バイナリ形式のリクエストのPOSTボディ。
使用法
Request.postDataBuffer();
戻り値
redirectedFrom
v1.9より前に追加もしあれば、サーバーによってこのリクエストにリダイレクトされたリクエスト。
サーバーがリダイレクトで応答すると、Playwright は新しい Request オブジェクトを作成します。2つのリクエストは redirectedFrom()
と redirectedTo()
メソッドによって接続されます。複数のサーバーリダイレクトが発生した場合、redirectedFrom()
を繰り返し呼び出すことで、リダイレクトチェーン全体を構築できます。
使用法
例えば、ウェブサイト http://example.com
が https://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.redirectedFrom() の反対です。
System.out.println(request.redirectedFrom().redirectedTo() == request); // true
戻り値
resourceType
v1.9より前に追加レンダリングエンジンが認識したリクエストのリソースタイプを含みます。リソースタイプは以下のいずれかです: document
, stylesheet
, image
, media
, font
, script
, texttrack
, xhr
, fetch
, eventsource
, websocket
, manifest
, other
。
使用法
Request.resourceType();
戻り値
response
v1.9より前に追加一致する Response オブジェクトを返します。エラーのために応答が受信されなかった場合は null
を返します。
使用法
Request.response();
戻り値
sizes
追加バージョン: v1.15指定されたリクエストのリソースサイズ情報を返します。
使用法
Request.sizes();
戻り値
- サイズ#
timing
v1.9より前に追加指定されたリクエストのリソースタイミング情報を返します。ほとんどのタイミング値は応答時に利用可能になり、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より前に追加リクエストのURL。
使用法
Request.url();
戻り値