Перейти к основному содержимому

APIRequestContext

Этот API используется для тестирования веб-API. Вы можете использовать его для вызова конечных точек API, настройки микросервисов, подготовки окружения или сервиса для вашего e2e теста.

Каждый контекст браузера Playwright имеет связанный с ним экземпляр APIRequestContext, который разделяет хранилище cookie с контекстом браузера и может быть доступен через browser_context.request или page.request. Также возможно создать новый экземпляр APIRequestContext вручную, вызвав api_request.new_context().

С каждым браузерным контекстом Playwright связан APIRequestContext, доступный через browser_context.request или page.request (они возвращают

один и тот же экземпляр — page.request представляет собой сокращённую запись для page.context().request). Вы также можете создать отдельный, изолированный экземпляр с помощью api_request.new_context().

APIRequestContext, возвращаемый browser_context.request и page.request, разделяет хранилище cookie с соответствующим BrowserContext. Каждый API-запрос будет иметь заголовок Cookie, заполненный значениями из контекста браузера. Если ответ API содержит заголовок Set-Cookie, он автоматически обновит cookies BrowserContext, и запросы, сделанные со страницы, их подхватят. Это означает, что если вы войдете в систему с помощью этого API, ваш e2e тест будет выполнен с авторизацией и наоборот.

APIRequestContext, возвращаемый browser_context.request и

page.request, использует то же хранилище файлов cookie, что и соответствующий BrowserContext:

Если вы хотите выполнять API-запросы, которые не используют общее с браузером хранилище файлов cookie, создайте изолированный контекст с помощью api_request.new_context(). Такой объект APIRequestContext будет иметь собственное изолированное хранилище файлов cookie.

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"}'

Методы​

add_cookies​

Добавлено в: v1.64 apiRequestContext.add_cookies

Добавляет файлы cookie в этот контекст запросов. Они будут отправляться с соответствующими последующими запросами. Для browser_context.request и page.request это эквивалентно вызову browser_context.add_cookies() в соответствующем контексте браузера.

Использование

request.add_cookies([cookie_object1, cookie_object2])

Аргументы

  • cookies List[Dict]#
    • name str

    • value str

    • url str (optional)

      Требуется либо url, либо оба параметра domain и path. Необязательный параметр.

    • domain str (optional)

      Чтобы файл cookie также применялся ко всем поддоменам, добавьте точку перед доменом, например: ".example.com". Требуется либо url, либо оба параметра domain и path. Необязательный параметр.

    • path str (optional)

      Требуется либо url, либо оба параметра domain и path. Необязательный параметр.

    • expires float (optional)

      Время Unix в секундах. Необязательный параметр.

    • httpOnly bool (optional)

      Необязательно.

    • secure bool (optional)

      Необязательно.

    • sameSite "Strict" | "Lax" | "None" (optional)

      Необязательно.

    • partitionKey str (optional)

      Ключ раздела для сторонних файлов cookie с разделением по сайту (CHIPS). Необязательный параметр.

Возвращает


clear_cookies​

Added in: v1.64 apiRequestContext.clear_cookies

Удаляет файлы cookie из этого контекста запросов. Принимает необязательный фильтр. Для browser_context.request и page.request это эквивалентно вызову browser_context.clear_cookies() в соответствующем контексте браузера.

Использование

request.clear_cookies()
request.clear_cookies(name="session-id")
request.clear_cookies(domain="my-origin.com")
request.clear_cookies(path="/api/v1")
request.clear_cookies(name="session-id", domain="my-origin.com")

Аргументы

  • domain str | Pattern (optional)#

    Удаляет только файлы cookie с указанным доменом.

  • name str | Pattern (optional)#

    Удаляет только файлы cookie с указанным именем.

  • path str | Pattern (optional)#

    Удаляет только файлы cookie с указанным путём.

Возвращает


cookies​

Добавлено в: v1.64 apiRequestContext.cookies

Если URL не указаны, этот метод возвращает все файлы cookie. Если URL указаны, возвращаются только файлы cookie, применимые к этим URL. Для browser_context.request и page.request это эквивалентно вызову browser_context.cookies() в соответствующем контексте браузера.

Использование

api_request_context.cookies()
api_request_context.cookies(**kwargs)

Аргументы

  • urls str | List[str] (optional)#

    Необязательный список URL.

Возвращает

  • List[Dict]#
    • name str

    • value str

    • domain str

    • path str

    • expires float

      Время Unix в секундах.

    • httpOnly bool

    • secure bool

    • sameSite "Strict" | "Lax" | "None"

    • partitionKey str (optional)


delete​

Добавлено в: v1.16 apiRequestContext.delete

Отправляет HTTP(S) запрос DELETE и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.

Использование

api_request_context.delete(url)
api_request_context.delete(url, **kwargs)

Аргументы

  • url str#

    Целевой 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] | FormData (необязательно) Добавлено в: v1.17#

    Задаёт объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в теле этого запроса. Если этот параметр указан, заголовку content-type будет присвоено значение application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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] | FormData (необязательно) Добавлено в: v1.17#
    • name str

      Имя файла

    • mimeType str

      Тип файла

    • buffer bytes

      Содержимое файла

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в теле этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательно)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


dispose​

Добавлено в: v1.16 apiRequestContext.dispose

Все ответы, возвращаемые api_request_context.get() и аналогичными методами, хранятся в памяти, чтобы вы могли позже вызвать api_response.body(). Этот метод освобождает все свои ресурсы, вызов любого метода на освобожденном APIRequestContext вызовет исключение.

Использование

api_request_context.dispose()
api_request_context.dispose(**kwargs)

Аргументы

  • reason str (опционально) Добавлено в: v1.45#

    Причина, которая будет сообщена операциям, прерванным освобождением контекста.

Возвращает


fetch​

Добавлено в: v1.16 apiRequestContext.fetch

Отправляет 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_or_request str | Request#

    Целевой 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] | FormData (необязательно)#

    Задаёт объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в теле этого запроса. Если этот параметр указан, заголовок content-type будет установлен в application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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 - без повторных попыток.

  • method str (опционально)#

Если задан, изменяет метод запроса (например, на PUT или POST). Если не указан, используется метод GET.

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательно)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


get​

Добавлено в: v1.16 apiRequestContext.get

Отправляет 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 str#

    Целевой 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] | FormData (необязательно) Добавлено в: v1.26#

    Задаёт объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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] | FormData (необязательно) Добавлено в: v1.26#
    • name str

      Имя файла

    • mimeType str

      Тип файла

    • buffer bytes

      Содержимое файла

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательный)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


head​

Добавлено в: v1.16 apiRequestContext.head

Отправляет HTTP(S) запрос HEAD и возвращает его ответ. Метод заполнит cookies запроса из контекста и обновит cookies контекста из ответа. Метод автоматически следует за перенаправлениями.

Использование

api_request_context.head(url)
api_request_context.head(url, **kwargs)

Аргументы

  • url str#

    Целевой 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] | FormData (необязательно) Добавлено в: v1.26#

    Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в качестве тела этого запроса. Если указан этот параметр, заголовок content-type будет установлен в application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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] | FormData (необязательно) Добавлено в: v1.26#
    • name str

      Имя файла

    • mimeType str

      Тип файла

    • buffer bytes

      Содержимое файла

Предоставляет объект, который будет сериализован в HTML-форму с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде объектов, представляющих файл и содержащих имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательный)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


patch​

Добавлено в: v1.16 apiRequestContext.patch

Отправляет HTTP(S) запрос PATCH и возвращает его ответ. Метод будет заполнять cookies запроса из контекста и обновлять cookies контекста из ответа. Метод автоматически следует за перенаправлениями.

Использование

api_request_context.patch(url)
api_request_context.patch(url, **kwargs)

Аргументы

  • url str#

    Целевой 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] | FormData (необязательно)#

    Задает объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовку content-type будет присвоено значение application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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, то есть без повторных попыток.

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательно)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


post​

Добавлено в: v1.16 apiRequestContext.post

Отправляет 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 str#

    Целевой 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] | FormData (необязательный)#

    Задаёт объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в качестве тела этого запроса. Если указан этот параметр, заголовок content-type будет установлен в application/x-www-form-urlencoded, если он не задан явно. Используйте FormData для отправки нескольких значений одного и того же поля.

  • 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, без повторных попыток.

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательно)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


put​

Добавлено в: v1.16 apiRequestContext.put

Отправляет HTTP(S) запрос PUT и возвращает его ответ. Метод будет заполнять cookies запроса из контекста и обновлять cookies контекста из ответа. Метод автоматически следует за перенаправлениями.

Использование

api_request_context.put(url)
api_request_context.put(url, **kwargs)

Аргументы

  • url str#

    Целевой 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] | FormData (необязательно)#

    Задаёт объект, который будет сериализован как HTML-форма с использованием кодировки application/x-www-form-urlencoded и отправлен в качестве тела этого запроса. Если указан этот параметр, заголовок content-type будет установлен в application/x-www-form-urlencoded, если он не задан явно. Используйте FormData, чтобы отправить несколько значений для одного и того же поля.

  • 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 — без повторных попыток.

Предоставляет объект, который будет сериализован как HTML-форма с использованием кодировки multipart/form-data и отправлен в качестве тела этого запроса. Если этот параметр указан, заголовок content-type будет установлен в multipart/form-data, если он не задан явно. Файлы можно передавать в виде файлового объекта, содержащего имя файла, MIME-тип и его содержимое. Используйте FormData для отправки нескольких файлов в одном поле.

  • params Dict[str, str | float | bool] | str (необязательный)#

    Параметры запроса, которые будут отправлены с URL.

  • timeout float (опционально)#

    Тайм-аут запроса в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

Возвращает


storage_state​

Добавлено в: v1.16 apiRequestContext.storage_state

Возвращает состояние хранилища для этого контекста запроса, содержит текущие cookies и снимок локального хранилища, если он был передан в конструктор.

Использование

api_request_context.storage_state()
api_request_context.storage_state(**kwargs)

Аргументы

  • indexed_db bool (опционально) Добавлено в: v1.51#

Установите значение true, чтобы включить IndexedDB в снимок состояния хранилища.

  • opfs bool (необязательно) Добавлено в: v1.63#

    Установите значение true, чтобы включить приватную файловую систему источника (origin private file system) в снимок состояния хранилища.

  • path Union[str, pathlib.Path] (необязательно)#

    Путь к файлу для сохранения состояния хранилища. Если path является относительным путем, то он разрешается относительно текущего рабочего каталога. Если путь не предоставлен, состояние хранилища все равно возвращается, но не будет сохранено на диск.

Возвращает


Свойства​

tracing​

Добавлено в: v1.60 apiRequestContext.tracing

Средство записи трассировки для запросов, выполняемых через этот контекст API-запросов.

Использование

api_request_context.tracing

Тип