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);
引数
-
dataString | byte[] | Object#リクエストのPOSTデータを設定できます。データパラメータがオブジェクトの場合、JSON文字列にシリアル化され、明示的に設定されていない限り
content-typeヘッダーはapplication/jsonに設定されます。それ以外の場合、明示的に設定されていない限りcontent-typeヘッダーはapplication/octet-streamに設定されます。
戻り値
setFailOnStatusCode
追加: v1.18使用法
RequestOptions.setFailOnStatusCode(failOnStatusCode);
引数
戻り値
setForm
追加: v1.18application/x-www-form-urlencodedエンコーディングを使用してHTMLフォームとしてシリアル化され、このリクエストボディとして送信されるFormDataオブジェクトを提供します。このパラメータが指定されている場合、明示的に提供されない限り、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);
引数
-
自動的にフォローされるリクエストのリダイレクトの最大数。この数を超えるとエラーがスローされます。デフォルトは
20です。リダイレクトをフォローしない場合は0を渡します。
戻り値
setMaxRetries
追加バージョン: v1.46使用法
RequestOptions.setMaxRetries(maxRetries);
引数
-
ネットワークエラーが再試行される最大回数。現在、
ECONNRESETエラーのみが再試行されます。HTTP応答コードに基づく再試行は行われません。制限を超えるとエラーがスローされます。デフォルトは0(再試行なし) です。
戻り値
setMethod
追加: v1.18リクエストメソッドを変更します(例: PUTまたはPOST)。
使用法
RequestOptions.setMethod(method);
引数
戻り値
setMultipart
追加: v1.18multipart/form-dataエンコーディングを使用してHTMLフォームとしてシリアル化され、このリクエストボディとして送信されるFormDataオブジェクトを提供します。このパラメータが指定されている場合、明示的に提供されない限り、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);
引数
戻り値