Skip to main content

RequestOptions

The RequestOptions allows to create form data to be sent via APIRequestContext. Playwright will automatically determine content type of the request.

context.request().post(
"https://example.com/submit",
RequestOptions.create()
.setQueryParam("page", 1)
.setData("My data"));

Uploading html form data

FormData class can be used to send a form to the server, by default the request will use application/x-www-form-urlencoded encoding:

context.request().post("https://example.com/signup", RequestOptions.create().setForm(
FormData.create()
.set("firstName", "John")
.set("lastName", "Doe")));

You can also send files as fields of an html form. The data will be encoded using 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)));

Alternatively, you can build the file payload manually:

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)));

Methods

create

Added in: v1.18 requestOptions.create

Creates new instance of RequestOptions.

Usage

RequestOptions.create();

Returns


setData

Added in: v1.18 requestOptions.setData

Sets the request's post data.

Usage

RequestOptions.setData(data);

Arguments

  • data String|byte[]|Object#

    Allows to set post data of the request. If the data parameter is an object, it will be serialized to json string and content-type header will be set to application/json if not explicitly set. Otherwise the content-type header will be set to application/octet-stream if not explicitly set.

Returns


setFailOnStatusCode

Added in: v1.18 requestOptions.setFailOnStatusCode

Usage

RequestOptions.setFailOnStatusCode(failOnStatusCode);

Arguments

  • failOnStatusCode boolean#

    Whether to throw on response codes other than 2xx and 3xx. By default response object is returned for all status codes.

Returns


setForm

Added in: v1.18 requestOptions.setForm

Provides FormData object that will be serialized as html form using application/x-www-form-urlencoded encoding and sent as this request body. If this parameter is specified content-type header will be set to application/x-www-form-urlencoded unless explicitly provided.

Usage

RequestOptions.setForm(form);

Arguments

  • form FormData#

    Form data to be serialized as html form using application/x-www-form-urlencoded encoding and sent as this request body.

Returns


setHeader

Added in: v1.18 requestOptions.setHeader

Sets an HTTP header to the request. This header will apply to the fetched request as well as any redirects initiated by it.

Usage

RequestOptions.setHeader(name, value);

Arguments

Returns


setIgnoreHTTPSErrors

Added in: v1.18 requestOptions.setIgnoreHTTPSErrors

Usage

RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);

Arguments

  • ignoreHTTPSErrors boolean#

    Whether to ignore HTTPS errors when sending network requests.

Returns


setMaxRedirects

Added in: v1.26 requestOptions.setMaxRedirects

Usage

RequestOptions.setMaxRedirects(maxRedirects);

Arguments

  • maxRedirects int#

    Maximum number of request redirects that will be followed automatically. An error will be thrown if the number is exceeded. Defaults to 20. Pass 0 to not follow redirects.

Returns


setMethod

Added in: v1.18 requestOptions.setMethod

Changes the request method (e.g. PUT or POST).

Usage

RequestOptions.setMethod(method);

Arguments

Returns


setMultipart

Added in: v1.18 requestOptions.setMultipart

Provides FormData object that will be serialized as html form using multipart/form-data encoding and sent as this request body. If this parameter is specified content-type header will be set to multipart/form-data unless explicitly provided.

Usage

RequestOptions.setMultipart(form);

Arguments

  • form FormData#

    Form data to be serialized as html form using multipart/form-data encoding and sent as this request body.

Returns


setQueryParam

Added in: v1.18 requestOptions.setQueryParam

Adds a query parameter to the request URL.

Usage

RequestOptions.setQueryParam(name, value);

Arguments

Returns


setTimeout

Added in: v1.18 requestOptions.setTimeout

Sets request timeout in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.

Usage

RequestOptions.setTimeout(timeout);

Arguments

  • timeout double#

    Request timeout in milliseconds.

Returns