跳至主要内容

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

上传 html 表单数据

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

方法

create

在以下版本中添加:v1.18 requestOptions.create

创建 RequestOptions 的新实例。

用法

RequestOptions.create();

返回值


setData

在以下版本中添加:v1.18 requestOptions.setData

设置请求的 POST 数据。

用法

RequestOptions.setData(data);

参数

  • data String | byte[] | Object#

    允许设置请求的 POST 数据。如果 data 参数是对象,它将被序列化为 JSON 字符串,并且 content-type 标头将被设置为 application/json(如果未显式设置)。否则,如果未显式设置,content-type 标头将被设置为 application/octet-stream

返回值


setFailOnStatusCode

在以下版本中添加:v1.18 requestOptions.setFailOnStatusCode

用法

RequestOptions.setFailOnStatusCode(failOnStatusCode);

参数

  • failOnStatusCode boolean#

    是否在响应代码不是 2xx 和 3xx 时抛出异常。默认情况下,对于所有状态代码都将返回响应对象。

返回值


setForm

在以下版本中添加:v1.18 requestOptions.setForm

提供 FormData 对象,该对象将被序列化为使用 application/x-www-form-urlencoded 编码的 HTML 表单,并作为此请求正文发送。如果指定了此参数,则 content-type 标头将被设置为 application/x-www-form-urlencoded(除非显式提供)。

用法

RequestOptions.setForm(form);

参数

  • form FormData#

    要序列化为使用 application/x-www-form-urlencoded 编码的 HTML 表单并作为此请求正文发送的表单数据。

返回值


setHeader

在以下版本中添加:v1.18 requestOptions.setHeader

设置请求的 HTTP 标头。此标头将应用于获取的请求,以及由其启动的任何重定向。

用法

RequestOptions.setHeader(name, value);

参数

返回值


setIgnoreHTTPSErrors

在以下版本中添加:v1.18 requestOptions.setIgnoreHTTPSErrors

用法

RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);

参数

  • ignoreHTTPSErrors boolean#

    是否在发送网络请求时忽略 HTTPS 错误。

返回值


setMaxRedirects

在以下版本中添加:v1.26 requestOptions.setMaxRedirects

用法

RequestOptions.setMaxRedirects(maxRedirects);

参数

  • maxRedirects int#

    将自动跟随的请求重定向的最大数量。如果超过该数量,则会抛出错误。默认值为 20。传递 0 表示不跟随重定向。

返回值


setMaxRetries

在以下版本中添加:v1.46 requestOptions.setMaxRetries

用法

RequestOptions.setMaxRetries(maxRetries);

参数

  • maxRetries int#

    网络错误应重试的最大次数。目前仅重试 ECONNRESET 错误。不根据 HTTP 响应代码重试。如果超过限制,则会抛出错误。默认值为 0 - 不重试。

返回值


setMethod

在以下版本中添加:v1.18 requestOptions.setMethod

更改请求方法(例如 PUTPOST)。

用法

RequestOptions.setMethod(method);

参数

返回值


setMultipart

在以下版本中添加:v1.18 requestOptions.setMultipart

提供 FormData 对象,该对象将被序列化为使用 multipart/form-data 编码的 HTML 表单,并作为此请求正文发送。如果指定了此参数,则 content-type 标头将被设置为 multipart/form-data(除非显式提供)。

用法

RequestOptions.setMultipart(form);

参数

  • form FormData#

    要序列化为使用 multipart/form-data 编码的 HTML 表单并作为此请求正文发送的表单数据。

返回值


setQueryParam

在以下版本中添加:v1.18 requestOptions.setQueryParam

向请求 URL 添加查询参数。

用法

RequestOptions.setQueryParam(name, value);

参数

返回值


setTimeout

在以下版本中添加:v1.18 requestOptions.setTimeout

以毫秒为单位设置请求超时。默认值为 30000(30 秒)。传递 0 表示禁用超时。

用法

RequestOptions.setTimeout(timeout);

参数

  • timeout double#

    请求超时时间,以毫秒为单位。

返回值