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.12`form-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
戻り値