requests — HTTP klient

Modul requests poskytuje minimální klientské API pro HTTP/HTTPS podobné knihovně Python requests. Každá funkce požadavku vrací objekt requests.Response.

Příklad:

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

Třída Response

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

Představuje odpověď HTTP. Instance vracejí requests.request a pomocné funkce pro jednotlivé metody.

status_code: int

Celočíselný stavový kód HTTP vrácený serverem.

reason: str

Důvodová fráze vrácená serverem (dekódovaný str).

encoding: str

Kódování řetězce použité k dekódování requests.Response.headers a requests.Response.content. Výchozí hodnota je "utf-8".

headers: str

Hlavičky odpovědi dekódované pomocí requests.Response.encoding a vrácené jako str.

content: str

Tělo odpovědi dekódované pomocí requests.Response.encoding a vrácené jako str.

json() dict

Parsuje requests.Response.content jako JSON a vrátí výsledný objekt.

Funkce

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

Odešle požadavek HTTP na url a vrátí requests.Response.

  • method — metoda HTTP jako str (např. "GET", "POST").

  • url — cílová URL. Musí začínat http:// nebo https://.

  • data — surové tělo požadavku. Pokud je nastaveno, je automaticky přidána hlavička Content-Length.

  • json — objekt serializovaný do JSON a odeslaný jako tělo. Nastaví Content-Type: application/json.

  • files — slovník mapující název pole na n-tici (filename, fileobj). Odesláno jako multipart/form-data.

  • headers — slovník dalších hlaviček požadavku.

  • auth — n-tice (username, password) pro HTTP Basic autentizaci.

  • stream — přijímáno kvůli kompatibilitě API; nepoužívá se.

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

Odešle požadavek HTTP HEAD a vrátí Response.

HEAD je shodný s GET až na to, že server odpovídá pouze stavovým řádkem a hlavičkami; tělo je prázdné. Použijte jej ke kontrole, zda zdroj existuje, k prozkoumání Content-Length / Content-Type bez stahování užitečného zatížení nebo k otestování URL před vydáním náročnějšího GET.

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • headers (kwarg) – slovník dalších hlaviček požadavku.

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

data / json / files / stream z request() jsou přijímány pro úplnost, ale u HEAD mají zřídka smysl.

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

Odešle požadavek HTTP GET a vrátí Response.

GET je standardní sloveso pro načtení reprezentace zdroje identifikovaného pomocí url. Je bezpečné (nezpůsobuje žádnou změnu stavu na straně serveru) a idempotentní.

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • headers (kwarg) – slovník dalších hlaviček požadavku (například Authorization nebo Accept).

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

Tělo požadavku přes data / json je podkladovou funkcí request() povoleno, ale většinou serverů ignorováno.

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

Odešle požadavek HTTP POST a vrátí Response.

POST odesílá data na url, obvykle vytváří nový podřízený zdroj, spouští odeslání formuláře nebo vyvolává akci. Není ani bezpečné, ani idempotentní: opakovaná volání mohou vytvořit duplicitní zdroje.

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • data (kwarg) – surové tělo požadavku (podobné bytes). Automaticky odesílá hlavičku Content-Length.

  • json (kwarg) – objekt serializovaný do JSON a odeslaný jako tělo. Nastaví Content-Type: application/json.

  • files (kwarg) – slovník mapující název pole na (filename, fileobj). Odesláno jako multipart/form-data.

  • headers (kwarg) – slovník dalších hlaviček požadavku.

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

Předejte nanejvýš jeden z data / json / files.

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

Odešle požadavek HTTP PUT a vrátí Response.

PUT nahrazuje zdroj na url dodanou reprezentací a vytvoří jej, pokud neexistuje. Je idempotentní: opakování shodného PUT vede ke stejnému konečnému stavu.

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • data (kwarg) – surové náhradní tělo (podobné bytes).

  • json (kwarg) – objekt serializovaný do JSON a odeslaný jako náhradní tělo. Nastaví Content-Type: application/json.

  • headers (kwarg) – slovník dalších hlaviček požadavku.

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

Pro přenos nové reprezentace předejte buď data, nebo json.

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

Odešle požadavek HTTP PATCH a vrátí Response.

PATCH aplikuje částečnou úpravu zdroje na url – mění se pouze pole obsažená v těle požadavku. Na rozdíl od PUT nemusí být idempotentní (ačkoli mnoho API jej takovým činí).

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • data (kwarg) – surové tělo s rozdílem (podobné bytes). Formát závisí na serveru (např. JSON Patch, JSON Merge Patch).

  • json (kwarg) – objekt rozdílu serializovaný do JSON. Nastaví Content-Type: application/json.

  • headers (kwarg) – slovník dalších hlaviček požadavku.

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

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

Odešle požadavek HTTP DELETE a vrátí Response.

DELETE požaduje odstranění zdroje na url. Je idempotentní: odstranění již odstraněného zdroje není chyba (server obvykle vrátí 404, ale konečný stav je stejný).

Argumenty:

  • url – cílová URL; musí začínat http:// nebo https://.

  • headers (kwarg) – slovník dalších hlaviček požadavku.

  • auth (kwarg) – n-tice (username, password) pro HTTP Basic autentizaci.

Tělo přes data / json je podkladovou funkcí request() povoleno, ale u DELETE se používá zřídka.