File: class-requestoptions.md | Updated: 11/18/2025
On this page
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
Added in: v1.18 requestOptions.create
Creates new instance of RequestOptions .
Usage
RequestOptions.create();
Returns
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
Added in: v1.18 requestOptions.setFailOnStatusCode
Usage
RequestOptions.setFailOnStatusCode(failOnStatusCode);
Arguments
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned for all status codes.
Returns
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 data to be serialized as html form using application/x-www-form-urlencoded encoding and sent as this request body.
Returns
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
Added in: v1.18 requestOptions.setIgnoreHTTPSErrors
Usage
RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);
Arguments
Returns
Added in: v1.26 requestOptions.setMaxRedirects
Usage
RequestOptions.setMaxRedirects(maxRedirects);
Arguments
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
Added in: v1.46 requestOptions.setMaxRetries
Usage
RequestOptions.setMaxRetries(maxRetries);
Arguments
Maximum number of times network errors should be retried. Currently only ECONNRESET error is retried. Does not retry based on HTTP response codes. An error will be thrown if the limit is exceeded. Defaults to 0 - no retries.
Returns
Added in: v1.18 requestOptions.setMethod
Changes the request method (e.g. PUT or POST ).
Usage
RequestOptions.setMethod(method);
Arguments
Returns
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 data to be serialized as html form using multipart/form-data encoding and sent as this request body.
Returns
Added in: v1.18 requestOptions.setQueryParam
Adds a query parameter to the request URL.
Usage
RequestOptions.setQueryParam(name, value);
Arguments
Returns
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
Returns