APIRequestContext
Этот API используется для тестирования веб-API. Вы можете использовать его для вызова конечных точек API, настройки микросервисов, подготовки окружения или сервиса для вашего e2e теста.
Каждый контекст браузера Playwright имеет связанный с ним экземпляр APIRequestContext, который разделяет хранилище cookie с контекстом браузера и может быть доступен через browser_context.request или page.request. Также возможно создать новый экземпляр APIRequestContext вручную, вызвав api_request.new_context().
Управление cookie
APIRequestContext, возвращаемый browser_context.request и page.request, разделяет хранилище cookie с соответствующим BrowserContext. Каждый API-запрос будет иметь заголовок Cookie
, заполненный значениями из контекста браузера. Если ответ API содержит заголовок Set-Cookie
, он автоматически обновит cookies BrowserContext, и запросы, сделанные со страницы, их подхватят. Это означает, что если вы войдете в систему с помощью этого API, ваш e2e тест будет выполнен с авторизацией и наоборот.
Если вы хотите, чтобы API-запросы не вмешивались в cookies браузера, вы должны создать новый APIRequestContext, вызвав api_request.new_context(). Такой объект APIRequestContext
будет иметь собственное изолированное хранилище cookie.
- Sync
- Async
import os
from playwright.sync_api import sync_playwright
REPO = "test-repo-1"
USER = "github-username"
API_TOKEN = os.getenv("GITHUB_API_TOKEN")
with sync_playwright() as p:
# Это запустит новый браузер, создаст контекст и страницу. При выполнении HTTP
# запросов с использованием внутреннего APIRequestContext (например, `context.request` или `page.request`)
# cookies будут автоматически установлены на странице браузера и наоборот.
browser = p.chromium.launch()
context = browser.new_context(base_url="https://api.github.com")
api_request_context = context.request
page = context.new_page()
# В качестве альтернативы вы можете создать APIRequestContext вручную без привязки к контексту браузера:
# api_request_context = p.request.new_context(base_url="https://api.github.com")
# Создать репозиторий.
response = api_request_context.post(
"/user/repos",
headers={
"Accept": "application/vnd.github.v3+json",
# Добавить персональный токен доступа GitHub.
"Authorization": f"token {API_TOKEN}",
},
data={"name": REPO},
)
assert response.ok
assert response.json()["name"] == REPO
# Удалить репозиторий.
response = api_request_context.delete(
f"/repos/{USER}/{REPO}",
headers={
"Accept": "application/vnd.github.v3+json",
# Добавить персональный токен доступа GitHub.
"Authorization": f"token {API_TOKEN}",
},
)
assert response.ok
assert await response.body() == '{"status": "ok"}'
import os
import asyncio
from playwright.async_api import async_playwright, Playwright
REPO = "test-repo-1"
USER = "github-username"
API_TOKEN = os.getenv("GITHUB_API_TOKEN")
async def run(playwright: Playwright):
# Это запустит новый браузер, создаст контекст и страницу. При выполнении HTTP
# запросов с использованием внутреннего APIRequestContext (например, `context.request` или `page.request`)
# cookies будут автоматически установлены на странице браузера и наоборот.
browser = await playwright.chromium.launch()
context = await browser.new_context(base_url="https://api.github.com")
api_request_context = context.request
page = await context.new_page()
# В качестве альтернативы вы можете создать APIRequestContext вручную без привязки к контексту браузера:
# api_request_context = await playwright.request.new_context(base_url="https://api.github.com")
# Создать репозиторий.
response = await api_request_context.post(
"/user/repos",
headers={
"Accept": "application/vnd.github.v3+json",
# Добавить персональный токен доступа GitHub.
"Authorization": f"token {API_TOKEN}",
},
data={"name": REPO},
)
assert response.ok
assert response.json()["name"] == REPO
# Удалить репозиторий.
response = await api_request_context.delete(
f"/repos/{USER}/{REPO}",
headers={
"Accept": "application/vnd.github.v3+json",
# Добавить персональный токен доступа GitHub.
"Authorization": f"token {API_TOKEN}",
},
)
assert response.ok
assert await response.body() == '{"status": "ok"}'
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Методы
delete
Добавлено в: v1.16Отправляет HTTP(S) запрос DELETE и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
api_request_context.delete(url)
api_request_context.delete(url, **kwargs)
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально) Добавлено в: v1.17#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не указан явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не указан явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально) Добавлено в: v1.17#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Добавлено в: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически выполнены. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Добавлено в: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально) Добавлено в: v1.17#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
dispose
Добавлено в: v1.16Все ответы, возвращаемые api_request_context.get() и аналогичными методами, хранятся в памяти, чтобы вы могли позже вызвать api_response.body(). Этот метод освобождает все свои ресурсы, вызов любого метода на освобожденном APIRequestContext вызовет исключение.
Использование
api_request_context.dispose()
api_request_context.dispose(**kwargs)
Аргументы
-
reason
str (опционально) Добавлено в: v1.45#Причина, которая будет сообщена операциям, прерванным освобождением контекста.
Возвращает
fetch
Добавлено в: v1.16Отправляет HTTP(S) запрос и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
Объекты JSON могут быть переданы напрямую в запрос:
data = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.fetch("https://example.com/api/createBook", method="post", data=data)
Обычный способ отправки файла(ов) в теле запроса - загрузить их как поля формы с кодировкой multipart/form-data
, указав параметр multipart
:
api_request_context.fetch(
"https://example.com/api/uploadScript", method="post",
multipart={
"fileField": {
"name": "f.js",
"mimeType": "text/javascript",
"buffer": b"console.log(2022);",
},
})
Аргументы
-
Целевой URL или запрос для получения всех параметров.
-
data
str | bytes | Dict (опционально)#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не указан явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не указан явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Добавлено в: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически выполнены. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Добавлено в: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
Если установлено, изменяет метод запроса (например, PUT или POST). Если не указано, используется метод GET.
-
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
get
Добавлено в: v1.16Отправляет HTTP(S) запрос GET и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
Параметры запроса могут быть настроены с помощью опции params
, они будут сериализованы в параметры поиска URL:
query_params = {
"isbn": "1234",
"page": "23"
}
api_request_context.get("https://example.com/api/getText", params=query_params)
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально) Добавлено в: v1.26#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не указан явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не указан явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально) Добавлено в: v1.26#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Добавлено в: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически выполнены. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Добавлено в: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально) Добавлено в: v1.26#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
head
Добавлено в: v1.16Отправляет HTTP(S) запрос HEAD и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
api_request_context.head(url)
api_request_context.head(url, **kwargs)
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально) Добавлено в: v1.26#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не указан явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не указан явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально) Добавлено в: v1.26#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Добавлено в: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически выполнены. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Добавлено в: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально) Добавлено в: v1.26#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
patch
Added in: v1.16Отправляет HTTP(S) запрос PATCH и возвращает его ответ. Метод будет заполнять cookies запроса из контекста и обновлять cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
api_request_context.patch(url)
api_request_context.patch(url, **kwargs)
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально)#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не установлен явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не установлен явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Added in: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически следоваться. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Added in: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, подобный файлу, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
post
Added in: v1.16Отправляет HTTP(S) запрос POST и возвращает его ответ. Метод будет заполнять cookies запроса из контекста и обновлять cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
JSON объекты могут быть переданы напрямую в запрос:
data = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.post("https://example.com/api/createBook", data=data)
Чтобы отправить данные формы на сервер, используйте опцию form
. Ее значение будет закодировано в теле запроса с использованием кодировки application/x-www-form-urlencoded
(см. ниже, как использовать кодировку формы multipart/form-data
для отправки файлов):
formData = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.post("https://example.com/api/findBook", form=formData)
Обычный способ отправки файла(ов) в теле запроса - загрузить их как поля формы с кодировкой multipart/form-data
. Используйте [FormData] для создания тела запроса и передайте его в запрос как параметр multipart
:
api_request_context.post(
"https://example.com/api/uploadScript'",
multipart={
"fileField": {
"name": "f.js",
"mimeType": "text/javascript",
"buffer": b"console.log(2022);",
},
})
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально)#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не установлен явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не установлен явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Added in: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически следоваться. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Added in: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, подобный файлу, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
put
Added in: v1.16Отправляет HTTP(S) запрос PUT и возвращает его ответ. Метод будет заполнять cookies запроса из контекста и обновлять cookies контекста из ответа. Метод автоматически следует за перенаправлениями.
Использование
api_request_context.put(url)
api_request_context.put(url, **kwargs)
Аргументы
-
Целевой URL.
-
data
str | bytes | Dict (опционально)#Позволяет установить данные запроса. Если параметр data является объектом, он будет сериализован в строку json, и заголовок
content-type
будет установлен вapplication/json
, если не установлен явно. В противном случае заголовокcontent-type
будет установлен вapplication/octet-stream
, если не установлен явно. -
fail_on_status_code
bool (опционально)#Следует ли выбрасывать исключение для кодов ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.
-
form
Dict[str, str | float | bool] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
application/x-www-form-urlencoded
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вapplication/x-www-form-urlencoded
, если не указан явно. -
headers
Dict[str, str] (опционально)#Позволяет установить HTTP-заголовки. Эти заголовки будут применяться к запрашиваемому запросу, а также к любым перенаправлениям, инициированным им.
-
ignore_https_errors
bool (опционально)#Следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false
. -
max_redirects
int (опционально) Added in: v1.26#Максимальное количество перенаправлений запроса, которые будут автоматически следоваться. Ошибка будет выброшена, если количество превышено. По умолчанию
20
. Передайте0
, чтобы не следовать за перенаправлениями. -
max_retries
int (опционально) Added in: v1.46#Максимальное количество повторных попыток при сетевых ошибках. В настоящее время повторно пытается только ошибку
ECONNRESET
. Не повторяет попытки на основе кодов ответа HTTP. Ошибка будет выброшена, если лимит превышен. По умолчанию0
- без повторных попыток. -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (опционально)#Предоставляет объект, который будет сериализован как html-форма с использованием кодировки
multipart/form-data
и отправлен как тело этого запроса. Если этот параметр указан, заголовокcontent-type
будет установлен вmultipart/form-data
, если не указан явно. Значения файлов могут быть переданы как объект, подобный файлу, содержащий имя файла, mime-тип и его содержимое. -
params
Dict[str, str | float | bool] | str (опционально)#Параметры запроса, которые будут отправлены с URL.
-
Тайм-аут запроса в миллисекундах. По умолчанию
30000
(30 секунд). Передайте0
, чтобы отключить тайм-аут.
Возвращает
storage_state
Added in: v1.16Возвращает состояние хранилища для этого контекста запроса, содержит текущие cookies и снимок локального хранилища, если он был передан в конструктор.
Использование
api_request_context.storage_state()
api_request_context.storage_state(**kwargs)
Аргументы
-
indexed_db
bool (опционально) Added in: v1.51#Установите в
true
, чтобы включить IndexedDB в снимок состояния хранилища. -
path
Union[str, pathlib.Path] (опционально)#Путь к файлу для сохранения состояния хранилища. Если path является относительным путем, то он разрешается относительно текущего рабочего каталога. Если путь не предоставлен, состояние хранилища все равно возвращается, но не будет сохранено на диск.
Возвращает