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.

使用方式

RequestOptions.create();

傳回值


setData

Added in: v1.18 requestOptions.setData

Sets 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 to application/json if not explicitly set. Otherwise the content-type header will be set to application/octet-stream if not explicitly set.

傳回值


setFailOnStatusCode

Added in: v1.18 requestOptions.setFailOnStatusCode

使用方式

RequestOptions.setFailOnStatusCode(failOnStatusCode);

參數

  • failOnStatusCode boolean#

    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.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.

使用方式

RequestOptions.setForm(form);

參數

  • form FormData#

    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.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.

使用方式

RequestOptions.setHeader(name, value);

參數

傳回值


setIgnoreHTTPSErrors

Added in: v1.18 requestOptions.setIgnoreHTTPSErrors

使用方式

RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);

參數

  • ignoreHTTPSErrors boolean#

    Whether to ignore HTTPS errors when sending network requests.

傳回值


setMaxRedirects

Added in: v1.26 requestOptions.setMaxRedirects

使用方式

RequestOptions.setMaxRedirects(maxRedirects);

參數

  • 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.

傳回值


setMaxRetries

Added in: v1.46 requestOptions.setMaxRetries

使用方式

RequestOptions.setMaxRetries(maxRetries);

參數

  • 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.

傳回值


setMethod

Added in: v1.18 requestOptions.setMethod

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

使用方式

RequestOptions.setMethod(method);

參數

傳回值


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.

使用方式

RequestOptions.setMultipart(form);

參數

  • form FormData#

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

傳回值


setQueryParam

Added in: v1.18 requestOptions.setQueryParam

Adds a query parameter to the request URL.

使用方式

RequestOptions.setQueryParam(name, value);

參數

傳回值


setTimeout

Added in: v1.18 requestOptions.setTimeout

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

使用方式

RequestOptions.setTimeout(timeout);

參數

  • timeout double#

    Request timeout in milliseconds.

傳回值