requests — HTTP-клієнт

Модуль requests надає мінімальний API HTTP/HTTPS-клієнта, подібний до бібліотеки Python requests. Кожна функція запиту повертає об’єкт requests.Response.

Приклад:

import requests

# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())

# POST JSON.
r = requests.post(
    "https://httpbin.org/post",
    json={"id": 1, "value": 42},
    headers={"X-Source": "openmv"},
)
print(r.json())

Клас Response

class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)

Представляє HTTP-відповідь. Екземпляри повертаються requests.request та допоміжними функціями для кожного методу.

status_code: int

Цілочисельний HTTP-код статусу, повернутий сервером.

reason: str

Фраза-причина, повернута сервером (декодований str).

encoding: str

Рядкове кодування, що використовується для декодування requests.Response.headers і requests.Response.content. Стандартне значення: "utf-8".

headers: str

Заголовки відповіді, декодовані з використанням requests.Response.encoding і повернуті як str.

content: str

Тіло відповіді, декодоване з використанням requests.Response.encoding і повернуте як str.

json() dict

Розібрати requests.Response.content як JSON та повернути отриманий об’єкт.

Функції

requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response

Надіслати HTTP-запит на url та повернути requests.Response.

  • method — HTTP-метод у вигляді str (наприклад, "GET", "POST").

  • url — цільова URL-адреса. Повинна починатися з http:// або https://.

  • data — необроблене тіло запиту. Якщо вказано, Content-Length додається автоматично.

  • json — об’єкт, серіалізований до JSON і надісланий як тіло. Встановлює Content-Type: application/json.

  • files — словник, що відображає назву поля на кортеж (filename, fileobj). Надсилається як multipart/form-data.

  • headers — словник додаткових заголовків запиту.

  • auth — кортеж (username, password) для базової HTTP-автентифікації.

  • stream — приймається для сумісності API; не використовується.

requests.head(url: str, **kw: Any) Response

Надіслати HTTP-запит HEAD та повернути Response.

HEAD ідентичний GET, за винятком того, що сервер відповідає лише рядком статусу та заголовками; тіло порожнє. Використовуйте його для перевірки існування ресурсу, отримання відомостей про Content-Length / Content-Type без завантаження вмісту або зондування URL перед виконанням важчого GET.

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • headers (kwarg) – словник додаткових заголовків запиту.

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

data / json / files / stream з request() приймаються для повноти, але рідко мають сенс для HEAD.

requests.get(url: str, **kw: Any) Response

Надіслати HTTP-запит GET та повернути Response.

GET — стандартне дієслово для отримання представлення ресурсу, ідентифікованого за url. Він є безпечним (не спричиняє змін стану на стороні сервера) та ідемпотентним.

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • headers (kwarg) – словник додаткових заголовків запиту (наприклад, Authorization або Accept).

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

Тіло запиту через data / json дозволяється базовою функцією request(), але більшість серверів його ігнорують.

requests.post(url: str, **kw: Any) Response

Надіслати HTTP-запит POST та повернути Response.

POST надсилає дані на url, зазвичай створюючи новий підпорядкований ресурс, запускаючи надсилання форми або викликаючи певну дію. Він є ані безпечним, ані ідемпотентним: повторні виклики можуть створювати дублікати ресурсів.

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • data (kwarg) – необроблене тіло запиту (bytes-like). Автоматично надсилає заголовок Content-Length.

  • json (kwarg) – об’єкт, серіалізований до JSON і надісланий як тіло. Встановлює Content-Type: application/json.

  • files (kwarg) – словник, що відображає назву поля на (filename, fileobj). Надсилається як multipart/form-data.

  • headers (kwarg) – словник додаткових заголовків запиту.

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

Передавайте не більше одного з: data / json / files.

requests.put(url: str, **kw: Any) Response

Надіслати HTTP-запит PUT та повернути Response.

PUT замінює ресурс за адресою url наданим представленням, створюючи його, якщо він не існує. Він є ідемпотентним: повторення ідентичного PUT дає той самий кінцевий стан.

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • data (kwarg) – необроблене тіло заміни (bytes-like).

  • json (kwarg) – об’єкт, серіалізований до JSON і надісланий як тіло заміни. Встановлює Content-Type: application/json.

  • headers (kwarg) – словник додаткових заголовків запиту.

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

Передайте data або json для надання нового представлення.

requests.patch(url: str, **kw: Any) Response

Надіслати HTTP-запит PATCH та повернути Response.

PATCH застосовує часткову зміну до ресурсу за адресою url — змінюються лише поля, що містяться в тілі запиту. На відміну від PUT, він не зобов’язаний бути ідемпотентним (хоча багато API роблять його таким).

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • data (kwarg) – необроблене тіло дельти (bytes-like). Формат залежить від сервера (наприклад, JSON Patch, JSON Merge Patch).

  • json (kwarg) – об’єкт дельти, серіалізований до JSON. Встановлює Content-Type: application/json.

  • headers (kwarg) – словник додаткових заголовків запиту.

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

requests.delete(url: str, **kw: Any) Response

Надіслати HTTP-запит DELETE та повернути Response.

DELETE запитує видалення ресурсу за адресою url. Він є ідемпотентним: видалення вже видаленого ресурсу не є помилкою (сервер зазвичай повертає 404, але кінцевий стан залишається тим самим).

Аргументи:

  • url – цільова URL-адреса; повинна починатися з http:// або https://.

  • headers (kwarg) – словник додаткових заголовків запиту.

  • auth (kwarg) – кортеж (username, password) для базової HTTP-автентифікації.

Тіло через data / json дозволяється базовою функцією request(), але рідко використовується з DELETE.