RequestOptions
RequestOptions позволяет создавать данные формы для отправки через APIRequestContext. Playwright автоматически определит тип содержимого запроса.
context.request().post(
"https://example.com/submit",
RequestOptions.create()
.setQueryParam("page", 1)
.setData("My data"));
Загрузка данных формы HTML
Класс FormData может быть использован для отправки формы на сервер, по умолчанию запрос будет использовать кодировку application/x-www-form-urlencoded
:
context.request().post("https://example.com/signup", RequestOptions.create().setForm(
FormData.create()
.set("firstName", "John")
.set("lastName", "Doe")));
Вы также можете отправлять файлы в качестве полей формы HTML. Данные будут закодированы с использованием 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)));
В качестве альтернативы, вы можете вручную создать полезную нагрузку файла:
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.
Использование
RequestOptions.create();
Возвращает
setData
Добавлено в: v1.18Устанавливает данные запроса 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(failOnStatusCode);
Аргументы
-
Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
Возвращает
setForm
Добавлено в: v1.18Предоставляет объект FormData, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded
и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type
будет установлен в application/x-www-form-urlencoded
, если не указан явно.
Использование
RequestOptions.setForm(form);
Аргументы
-
Данные формы, которые будут сериализованы как HTML-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлены в качестве тела этого запроса.
Возвращает
setHeader
Добавлено в: v1.18Устанавливает HTTP-заголовок для запроса. Этот заголовок будет применяться как к запрашиваемому запросу, так и к любым перенаправлениям, инициированным им.
Использование
RequestOptions.setHeader(name, value);
Аргументы
Возвращает
setIgnoreHTTPSErrors
Добавлено в: v1.18Использование
RequestOptions.setIgnoreHTTPSErrors(ignoreHTTPSErrors);
Аргументы
Возвращает
setMaxRedirects
Добавлено в: v1.26Использование
RequestOptions.setMaxRedirects(maxRedirects);
Аргументы
-
Максимальное количество перенаправлений запроса, которые будут автоматически следоваться. Ошибка будет выброшена, если количество будет превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями.
Возвращает
setMaxRetries
Добавлено в: v1.46Использование
RequestOptions.setMaxRetries(maxRetries);
Аргументы
-
Максимальное количество раз, когда сетевые ошибки должны быть повторены. В настоящее время повторяется только ошибка
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит будет превышен. По умолчанию0
- без повторных попыток.
Возвращает
setMethod
Добавлено в: v1.18Изменяет метод запроса (например, PUT или POST).
Использование
RequestOptions.setMethod(method);
Аргументы
Возвращает
setMultipart
Добавлено в: v1.18Предоставляет объект FormData, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data
и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type
будет установлен в multipart/form-data
, если не указан явно.
Использование
RequestOptions.setMultipart(form);
Аргументы
-
Данные формы, которые будут сериализованы как HTML-форма с использованием кодировки
multipart/form-data
и отправлены в качестве тела этого запроса.
Возвращает
setQueryParam
Добавлено в: v1.18Добавляет параметр запроса к URL запроса.
Использование
RequestOptions.setQueryParam(name, value);
Аргументы
Возвращает
setTimeout
Добавлено в: v1.18Устанавливает тайм-аут запроса в миллисекундах. По умолчанию 30000
(30 секунд). Передайте 0
, чтобы отключить тайм-аут.
Использование
RequestOptions.setTimeout(timeout);
Аргументы
Возвращает