- since: v1.18
- langs: java
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)));
- since: v1.18
- returns: <[RequestOptions]>
Creates new instance of [RequestOptions].
- since: v1.18
- returns: <[RequestOptions]>
Sets the request's post data.
- since: v1.18
data
<[string]|[Buffer]|[Serializable]>
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.
- since: v1.18
- returns: <[RequestOptions]>
- since: v1.18
failOnStatusCode
<[boolean]>
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned for all status codes.
- since: v1.18
- returns: <[RequestOptions]>
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.
- since: v1.18
form
<[FormData]>
Form data to be serialized as html form using application/x-www-form-urlencoded
encoding and sent as
this request body.
- since: v1.18
- returns: <[RequestOptions]>
Sets an HTTP header to the request. This header will apply to the fetched request as well as any redirects initiated by it.
- since: v1.18
name
<[string]>
Header name.
- since: v1.18
value
<[string]>
Header value.
- since: v1.18
- returns: <[RequestOptions]>
- since: v1.18
ignoreHTTPSErrors
<[boolean]>
Whether to ignore HTTPS errors when sending network requests.
- since: v1.26
- returns: <[RequestOptions]>
- since: v1.26
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.
- since: v1.46
- returns: <[RequestOptions]>
- since: v1.46
maxRetries
<[int]>
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.
- since: v1.18
- returns: <[RequestOptions]>
Changes the request method (e.g. PUT or POST).
- since: v1.18
method
<[string]>
Request method, e.g. POST.
- since: v1.18
- returns: <[RequestOptions]>
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.
- since: v1.18
form
<[FormData]>
Form data to be serialized as html form using multipart/form-data
encoding and sent as
this request body.
- since: v1.18
- returns: <[RequestOptions]>
Adds a query parameter to the request URL.
- since: v1.18
name
<[string]>
Parameter name.
- since: v1.18
value
<[string]|[boolean]|[int]>
Parameter value.
- since: v1.18
- returns: <[RequestOptions]>
Sets request timeout in milliseconds. Defaults to 30000
(30 seconds). Pass 0
to disable timeout.
- since: v1.18
timeout
<[float]>
Request timeout in milliseconds.