Request
ページがネットワークリソースの要求を送信するたびに、Pageから以下のイベントシーケンスが発行されます
- 要求がページによって発行されたときにPage.Requestが発行されます。
- 要求の応答ステータスとヘッダーが受信されたときにPage.Responseが発行されます。
- 応答本体がダウンロードされ、要求が完了したときにPage.RequestFinishedが発行されます。
途中で要求が失敗した場合、'requestfinished'
イベント(および場合によっては'response'イベント)の代わりに、Page.RequestFailedイベントが発行されます。
404や503のようなHTTPエラー応答は、HTTPの観点からは依然として成功した応答であるため、要求は'requestfinished'
イベントで完了します。
要求が「リダイレクト」応答を受け取ると、要求はrequestfinished
イベントで正常に完了し、リダイレクトされたURLへの新しい要求が発行されます。
メソッド
AllHeadersAsync
追加バージョン: v1.15この要求に関連付けられたすべてのHTTPヘッダーを含むオブジェクトです。ヘッダー名は小文字で記述されます。
使用方法
await Request.AllHeadersAsync();
戻り値
Failure
追加バージョン: v1.9より前このメソッドは、requestfailed
イベントによって報告されたように、このリクエストが失敗しない限りnull
を返します。
使用方法
失敗したすべてのリクエストのログ記録の例
page.RequestFailed += (_, request) =>
{
Console.WriteLine(request.Failure);
};
戻り値
Frame
追加バージョン: v1.9より前このリクエストを開始したFrameを返します。
使用方法
var frameUrl = request.Frame.Url;
戻り値
詳細
場合によってはフレームが利用できず、このメソッドが例外をスローすることに注意してください。
- Service Workerでリクエストが開始された場合。
request.serviceWorker()
を使用して確認できます。 - 対応するフレームが作成される前にナビゲーションリクエストが発行された場合。Request.IsNavigationRequestを使用して確認できます。
すべてのケースを処理する例を以下に示します
HeaderValueAsync
追加バージョン: v1.15名前に一致するヘッダーの値を返します。名前は大文字と小文字を区別しません。
使用方法
await Request.HeaderValueAsync(name);
引数
戻り値
Headers
追加バージョン: v1.9より前要求HTTPヘッダーを含むオブジェクトです。ヘッダー名は小文字で記述されます。このメソッドは、クッキー関連のヘッダーを含むセキュリティ関連のヘッダーを返さないことに注意してください。cookie
情報を含むヘッダーの完全なリストについては、Request.AllHeadersAsync()を使用できます。
使用方法
Request.Headers
戻り値
HeadersArrayAsync
追加バージョン: v1.15この要求に関連付けられたすべてのHTTPヘッダーを含む配列です。Request.AllHeadersAsync()とは異なり、ヘッダー名は大文字と小文字が区別されます。Set-Cookie
のように複数のエントリを持つヘッダーは、配列に複数回現れます。
使用方法
await Request.HeadersArrayAsync();
戻り値
- IReadOnlyList<
HttpHeader
>#
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
戻り値
PostDataJSON
追加バージョン: v1.12form-urlencoded
の解析済みリクエストボディと、もしあればJSON(フォールバックとして)を返します。
応答がapplication/x-www-form-urlencoded
の場合、値のキー/値オブジェクトが返されます。それ以外の場合はJSONとして解析されます。
使用方法
Request.PostDataJSON
戻り値
RedirectedFrom
追加バージョン: v1.9より前サーバーによってこのリクエストにリダイレクトされたリクエスト(もしあれば)。
サーバーがリダイレクトで応答すると、Playwrightは新しいRequestオブジェクトを作成します。2つのリクエストはredirectedFrom()
とredirectedTo()
メソッドによって接続されます。複数のサーバーリダイレクトが発生した場合、redirectedFrom()
を繰り返し呼び出すことで、完全なリダイレクトチェーンを構築できます。
使用方法
例えば、ウェブサイトhttp://example.com
がhttps://example.com
にリダイレクトする場合
var response = await page.GotoAsync("http://www.microsoft.com");
Console.WriteLine(response.Request.RedirectedFrom?.Url); // http://www.microsoft.com
ウェブサイトhttps://google.com
にリダイレクトがない場合
var response = await page.GotoAsync("https://www.google.com");
Console.WriteLine(response.Request.RedirectedFrom?.Url); // null
戻り値
RedirectedTo
追加バージョン: v1.9より前サーバーがリダイレクトで応答した場合に、ブラウザによって発行される新しいリクエスト。
使用方法
このメソッドはRequest.RedirectedFromの反対です
Console.WriteLine(request.RedirectedFrom?.RedirectedTo == request); // True
戻り値
ResourceType
追加バージョン: v1.9より前レンダリングエンジンによって認識されたリクエストのリソースタイプが含まれます。ResourceTypeは次のいずれかになります: document
, stylesheet
, image
, media
, font
, script
, texttrack
, xhr
, fetch
, eventsource
, websocket
, manifest
, other
。
使用方法
Request.ResourceType
戻り値
ResponseAsync
追加バージョン: v1.9より前一致するResponseオブジェクトを返します。エラーのために応答が受信されなかった場合はnull
を返します。
使用方法
await Request.ResponseAsync();
戻り値
SizesAsync
追加バージョン: v1.15指定されたリクエストのリソースサイズ情報を返します。
使用方法
await Request.SizesAsync();
戻り値
- Sizes#
Timing
追加バージョン: v1.9より前指定されたリクエストのリソースタイミング情報を返します。ほとんどのタイミング値は応答時に利用可能になり、responseEnd
はリクエストが完了したときに利用可能になります。Resource Timing APIで詳細を確認してください。
使用方法
var request = await page.RunAndWaitForRequestFinishedAsync(async () =>
{
await page.GotoAsync("https://www.microsoft.com");
});
Console.WriteLine(request.Timing.ResponseEnd);
戻り値
- Timing#
-
startTime
[float]1970年1月1日00:00:00 UTCからの経過ミリ秒単位のリクエスト開始時刻
-
domainLookupStart
[float]ブラウザがリソースのドメイン名検索を開始する直前の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
domainLookupEnd
[float]ブラウザがリソースのドメイン名検索を開始した直後の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
connectStart
[float]ユーザーエージェントがリソースを取得するためにサーバーへの接続を確立し始める直前の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
secureConnectionStart
[float]ブラウザが現在の接続を保護するためのハンドシェイクプロセスを開始する直前の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
connectEnd
[float]ユーザーエージェントがリソースを取得するためにサーバーへの接続を確立し始める直前の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
requestStart
[float]ブラウザがサーバー、キャッシュ、またはローカルリソースからリソースの要求を開始する直前の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
responseStart
[float]ブラウザがサーバー、キャッシュ、またはローカルリソースから応答の最初のバイトを受信した直後の時刻。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。 -
responseEnd
[float]ブラウザがリソースの最後のバイトを受信した直後、またはトランスポート接続が閉じられる直前の時刻(いずれか早い方)。値は
startTime
からの相対ミリ秒で与えられ、利用できない場合は-1です。
-
Url
追加バージョン: v1.9より前リクエストのURL。
使用方法
Request.Url
戻り値