RequestOptions
RequestOptionsは、APIRequestContextを介して送信されるフォームデータを作成することを可能にします。Playwrightはリクエストのコンテンツタイプを自動的に決定します。
context.request().post(
"https://example.com/submit",
RequestOptions.create()
.setQueryParam("page", 1)
.setData("My data"));
HTMLフォームデータのアップロード
FormDataクラスは、フォームをサーバーに送信するために使用できます。デフォルトでは、リクエストはapplication/x-www-form-urlencoded
エンコーディングを使用します。
context.request().post("https://example.com/signup", RequestOptions.create().setForm(
FormData.create()
.set("firstName", "John")
.set("lastName", "Doe")));
HTMLフォームのフィールドとしてファイルを送信することもできます。データはmultipart/form-data
を使用してエンコードされます。
Path path = Paths.get("members.csv");
APIResponse response = context.request().post("https://example.com/upload_members",
RequestOptions.create().setMultipart(FormData.create().set("membersList", path)));
あるいは、ファイルペイロードを手動で構築することもできます。
FilePayload filePayload = new FilePayload("members.csv", "text/csv",
"Alice, 33\nJohn, 35\n".getBytes(StandardCharsets.UTF_8));
APIResponse response = context.request().post("https://example.com/upload_members",
RequestOptions.create().setMultipart(FormData.create().set("membersList", filePayload)));
メソッド
create
追加バージョン: v1.18RequestOptionsの新しいインスタンスを作成します。
使用方法
RequestOptions.create();
戻り値
setData
追加バージョン: v1.18リクエストのPOSTデータを設定します。
使用方法
RequestOptions.setData(data);
引数
-
data
String | byte[] | Object#リクエストのPOSTデータを設定できます。
data
パラメータがオブジェクトの場合、JSON文字列にシリアル化され、明示的に設定されていない限りcontent-type
ヘッダーがapplication/json
に設定されます。それ以外の場合、明示的に設定されていない限りcontent-type
ヘッダーはapplication/octet-stream
に設定されます。
戻り値
setFailOnStatusCode
追加バージョン: v1.18使用方法
RequestOptions.setFailOnStatusCode(failOnStatusCode);
引数
-
2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
戻り値
setForm
追加バージョン: v1.18FormDataオブジェクトを提供します。これはapplication/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアル化され、このリクエストボディとして送信されます。このパラメータが指定されている場合、明示的に提供されていない限りcontent-type
ヘッダーはapplication/x-www-form-urlencoded
に設定されます。
使用方法
RequestOptions.setForm(form);
引数
-
application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアル化され、このリクエストボディとして送信されるフォームデータ。
戻り値
setHeader
追加バージョン: v1.18リクエストにHTTPヘッダーを設定します。このヘッダーは、取得されたリクエストおよびそれによって開始されるすべてのリダイレクトに適用されます。
使用方法
RequestOptions.setHeader(name, value);
引数
戻り値
setIgnoreHTTPSErrors
追加バージョン: v1.18使用方法
RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);
引数
戻り値
setMaxRedirects
追加バージョン: v1.26使用方法
RequestOptions.setMaxRedirects(maxRedirects);
引数
戻り値
setMaxRetries
追加バージョン: v1.46使用方法
RequestOptions.setMaxRetries(maxRetries);
引数
-
ネットワークエラーが再試行される最大回数。現在、
ECONNRESET
エラーのみが再試行されます。HTTPレスポンスコードに基づいて再試行することはありません。制限を超えるとエラーがスローされます。デフォルトは0
(再試行なし)です。
戻り値
setMethod
追加バージョン: v1.18使用方法
RequestOptions.setMethod(method);
引数
戻り値
setMultipart
追加バージョン: v1.18FormDataオブジェクトを提供します。これはmultipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアル化され、このリクエストボディとして送信されます。このパラメータが指定されている場合、明示的に提供されていない限りcontent-type
ヘッダーはmultipart/form-data
に設定されます。
使用方法
RequestOptions.setMultipart(form);
引数
戻り値
setQueryParam
追加バージョン: v1.18リクエストURLにクエリパラメータを追加します。
使用方法
RequestOptions.setQueryParam(name, value);
引数
戻り値
setTimeout
追加バージョン: v1.18リクエストのタイムアウトをミリ秒で設定します。デフォルトは30000
(30秒)です。タイムアウトを無効にするには0
を渡します。
使用方法
RequestOptions.setTimeout(timeout);
引数
戻り値