playwright/docs/src/api/class-requestoptions.md
2023-02-01 16:55:03 -08:00

5.5 KiB

class: RequestOptions

  • 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)));

method: RequestOptions.create

  • since: v1.18
  • returns: <[RequestOptions]>

Creates new instance of [RequestOptions].

method: RequestOptions.setData

  • since: v1.18
  • returns: <[RequestOptions]>

Sets the request's post data.

param: RequestOptions.setData.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.

method: RequestOptions.setFailOnStatusCode

  • since: v1.18
  • returns: <[RequestOptions]>

param: RequestOptions.setFailOnStatusCode.failOnStatusCode

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

method: RequestOptions.setForm

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

param: RequestOptions.setForm.form

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

method: RequestOptions.setHeader

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

param: RequestOptions.setHeader.name

  • since: v1.18
  • name <[string]>

Header name.

param: RequestOptions.setHeader.value

  • since: v1.18
  • value <[string]>

Header value.

method: RequestOptions.setIgnoreHTTPSErrors

  • since: v1.18
  • returns: <[RequestOptions]>

param: RequestOptions.setIgnoreHTTPSErrors.ignoreHTTPSErrors

  • since: v1.18
  • ignoreHTTPSErrors <[boolean]>

Whether to ignore HTTPS errors when sending network requests.

method: RequestOptions.setMaxRedirects

  • since: v1.26
  • returns: <[RequestOptions]>

param: RequestOptions.setMaxRedirects.maxRedirects

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

method: RequestOptions.setMethod

  • since: v1.18
  • returns: <[RequestOptions]>

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

param: RequestOptions.setMethod.method

  • since: v1.18
  • method <[string]>

Request method, e.g. POST.

method: RequestOptions.setMultipart

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

param: RequestOptions.setMultipart.form

  • since: v1.18
  • form <[FormData]>

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

method: RequestOptions.setQueryParam

  • since: v1.18
  • returns: <[RequestOptions]>

Adds a query parameter to the request URL.

param: RequestOptions.setQueryParam.name

  • since: v1.18
  • name <[string]>

Parameter name.

param: RequestOptions.setQueryParam.value

  • since: v1.18
  • value <[string]|[boolean]|[int]>

Parameter value.

method: RequestOptions.setTimeout

  • since: v1.18
  • returns: <[RequestOptions]>

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

param: RequestOptions.setTimeout.timeout

  • since: v1.18
  • timeout <[float]>

Request timeout in milliseconds.