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.
使用方式
RequestOptions.create();
傳回值
setData
Added in: v1.18Sets the request's post data.
使用方式
RequestOptions.setData(data);
參數
-
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 toapplication/json
if not explicitly set. Otherwise thecontent-type
header will be set toapplication/octet-stream
if not explicitly set.
傳回值
setFailOnStatusCode
Added in: v1.18使用方式
RequestOptions.setFailOnStatusCode(failOnStatusCode);
參數
-
Whether to throw on response codes other than 2xx and 3xx. By default response object is returned for all status codes.
傳回值
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.
使用方式
RequestOptions.setForm(form);
參數
-
Form data to be serialized as html form using
application/x-www-form-urlencoded
encoding and sent as this request body.
傳回值
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.
使用方式
RequestOptions.setHeader(name, value);
參數
傳回值
setIgnoreHTTPSErrors
Added in: v1.18使用方式
RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);
參數
傳回值
setMaxRedirects
Added in: v1.26使用方式
RequestOptions.setMaxRedirects(maxRedirects);
參數
-
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.
傳回值
setMaxRetries
Added in: v1.46使用方式
RequestOptions.setMaxRetries(maxRetries);
參數
-
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 to0
- no retries.
傳回值
setMethod
Added in: v1.18Changes the request method (e.g. PUT or POST).
使用方式
RequestOptions.setMethod(method);
參數
傳回值
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.
使用方式
RequestOptions.setMultipart(form);
參數
-
Form data to be serialized as html form using
multipart/form-data
encoding and sent as this request body.
傳回值
setQueryParam
Added in: v1.18Adds a query parameter to the request URL.
使用方式
RequestOptions.setQueryParam(name, value);
參數
傳回值
setTimeout
Added in: v1.18Sets request timeout in milliseconds. Defaults to 30000
(30 seconds). Pass 0
to disable timeout.
使用方式
RequestOptions.setTimeout(timeout);
參數
傳回值