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.18Creates new instance of RequestOptions.
Usage
RequestOptions.create();
Returns
setData
Added in: v1.18Sets the request's post data.
Usage
RequestOptions.setData(data);
Arguments
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 toapplication/json
if not explicitly set. Otherwise thecontent-type
header will be set toapplication/octet-stream
if not explicitly set.
Returns
setFailOnStatusCode
Added in: v1.18Usage
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
setForm
Added in: v1.18Provides 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
setHeader
Added in: v1.18Sets 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.18Usage
RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);
Arguments
Returns
setMaxRedirects
Added in: v1.26Usage
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
. Pass0
to not follow redirects.
Returns
setMethod
Added in: v1.18Changes the request method (e.g. PUT or POST).
Usage
RequestOptions.setMethod(method);
Arguments
Returns
setMultipart
Added in: v1.18Provides 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
setQueryParam
Added in: v1.18Adds a query parameter to the request URL.
Usage
RequestOptions.setQueryParam(name, value);
Arguments
Returns
setTimeout
Added in: v1.18Sets request timeout in milliseconds. Defaults to 30000
(30 seconds). Pass 0
to disable timeout.
Usage
RequestOptions.setTimeout(timeout);
Arguments
Returns