Interface RequestOptions

All Known Implementing Classes:
RequestOptionsImpl

public interface 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)));
 
  • Method Details

    • create

      static RequestOptions create()
      Creates new instance of RequestOptions.
      Since:
      v1.18
    • setData

      RequestOptions setData(String data)
      Sets the request's post data.
      Parameters:
      data - 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
    • setData

      RequestOptions setData(byte[] data)
      Sets the request's post data.
      Parameters:
      data - 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
    • setData

      RequestOptions setData(Object data)
      Sets the request's post data.
      Parameters:
      data - 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
    • setFailOnStatusCode

      RequestOptions setFailOnStatusCode(boolean failOnStatusCode)
      Parameters:
      failOnStatusCode - Whether to throw on response codes other than 2xx and 3xx. By default response object is returned for all status codes.
      Since:
      v1.18
    • setForm

      RequestOptions setForm(FormData form)
      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.
      Parameters:
      form - Form data to be serialized as html form using application/x-www-form-urlencoded encoding and sent as this request body.
      Since:
      v1.18
    • setHeader

      RequestOptions setHeader(String name, String value)
      Sets an HTTP header to the request. This header will apply to the fetched request as well as any redirects initiated by it.
      Parameters:
      name - Header name.
      value - Header value.
      Since:
      v1.18
    • setIgnoreHTTPSErrors

      RequestOptions setIgnoreHTTPSErrors(boolean ignoreHTTPSErrors)
      Parameters:
      ignoreHTTPSErrors - Whether to ignore HTTPS errors when sending network requests.
      Since:
      v1.18
    • setMaxRedirects

      RequestOptions setMaxRedirects(int maxRedirects)
      Parameters:
      maxRedirects - 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.26
    • setMethod

      RequestOptions setMethod(String method)
      Changes the request method (e.g. PUT or POST).
      Parameters:
      method - Request method, e.g. POST.
      Since:
      v1.18
    • setMultipart

      RequestOptions setMultipart(FormData form)
      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.
      Parameters:
      form - Form data to be serialized as html form using multipart/form-data encoding and sent as this request body.
      Since:
      v1.18
    • setQueryParam

      RequestOptions setQueryParam(String name, String value)
      Adds a query parameter to the request URL.
      Parameters:
      name - Parameter name.
      value - Parameter value.
      Since:
      v1.18
    • setQueryParam

      RequestOptions setQueryParam(String name, boolean value)
      Adds a query parameter to the request URL.
      Parameters:
      name - Parameter name.
      value - Parameter value.
      Since:
      v1.18
    • setQueryParam

      RequestOptions setQueryParam(String name, int value)
      Adds a query parameter to the request URL.
      Parameters:
      name - Parameter name.
      value - Parameter value.
      Since:
      v1.18
    • setTimeout

      RequestOptions setTimeout(double timeout)
      Sets request timeout in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.
      Parameters:
      timeout - Request timeout in milliseconds.
      Since:
      v1.18