requests — Client HTTP#

Modulul requests oferă o API minimă de client HTTP/HTTPS similară cu biblioteca Python requests. Fiecare funcție de cerere returnează un obiect requests.Response.

Exemplu:

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

Clasa Response#

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

Reprezintă un răspuns HTTP. Instanțele sunt returnate de requests.request și de funcțiile ajutătoare pentru fiecare metodă.

status_code: int#

Codul de stare HTTP întreg returnat de server.

reason: str#

Fraza de motiv returnată de server (str decodat).

encoding: str#

Codificarea șirului folosită pentru a decoda requests.Response.headers și requests.Response.content. Implicit "utf-8".

headers: str#

Antetele răspunsului decodate cu requests.Response.encoding și returnate ca str.

content: str#

Corpul răspunsului decodat cu requests.Response.encoding și returnat ca str.

json() → dict#

Analizează requests.Response.content ca JSON și returnează obiectul rezultat.

Funcții#

requests.request(method: str, url: str, data: bytes | str | None = None, json: Any | None = None, files: dict | None = None, headers: dict | None = None, auth: tuple | None = None, stream: Any | None = None, timeout: float | None = 5.0) → Response#

Trimite o cerere HTTP către url și returnează un requests.Response.

  • method — metoda HTTP ca str (de exemplu "GET", "POST").

  • url — URL-ul țintă. Trebuie să înceapă cu http:// sau https://.

  • data — Corpul brut al cererii. Un str este codificat UTF-8 înainte de trimitere. Dacă este setat, Content-Length este adăugat automat.

  • json — obiect serializat în JSON și trimis ca corp. Setează Content-Type: application/json.

  • files — dicționar care mapează numele câmpului la un tuplu (filename, fileobj). Trimis ca multipart/form-data.

  • headers — Dicționar de antete suplimentare ale cererii. Dicționarul este copiat, astfel încât dicționarul apelantului nu este niciodată modificat (iar un antet Authorization adăugat pentru auth nu se scurge în cererile ulterioare care îl refolosesc).

  • auth — tuplu (username, password) pentru autentificarea HTTP Basic.

  • stream — acceptat pentru compatibilitate cu API-ul; nu este folosit.

  • timeout — Timeout-ul socket-ului în secunde, aplicat după ce conexiunea este stabilită. Implicit 5.0; transmiteți None pentru a bloca la nesfârșit. La expirare este ridicată o excepție OSError.

Răspunsurile trimise cu Transfer-Encoding: chunked sunt decodate transparent, astfel încât requests.Response.content conține întotdeauna corpul reasamblat. Antetele răspunsului sunt potrivite fără a ține cont de majuscule/minuscule. Redirecționările nu sunt urmate: un răspuns 3xx cu un antet Location ridică NotImplementedError.

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

Trimite o cerere HTTP HEAD și returnează un Response.

HEAD este identic cu GET cu excepția faptului că serverul răspunde doar cu linia de stare și antetele; corpul este gol. Folosește-l pentru a verifica dacă o resursă există, pentru a inspecta Content-Length / Content-Type fără a descărca încărcătura utilă, sau pentru a sonda un URL înainte de a emite un GET mai costisitor.

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii.

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

data / json / files / stream din request() sunt acceptate pentru completitudine, dar rareori au sens pentru HEAD.

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

Trimite o cerere HTTP GET și returnează un Response.

GET este verbul standard pentru recuperarea unei reprezentări a resursei identificate de url. Este sigur (nu provoacă nicio modificare de stare pe partea serverului) și idempotent.

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii (de exemplu Authorization sau Accept).

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

  • timeout (kwarg) – timeout-ul socket-ului în secunde (implicit 5.0).

Un corp de cerere prin data / json este permis de funcția subiacentă request(), dar ignorat de majoritatea serverelor.

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

Trimite o cerere HTTP POST și returnează un Response.

POST trimite date către url, de obicei creând o nouă resursă subordonată, declanșând trimiterea unui formular sau invocând o acțiune. Nu este nici sigur, nici idempotent: apelurile repetate pot crea resurse duplicate.

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • data (kwarg) – corpul brut al cererii (de tip bytes). Trimite automat un antet Content-Length.

  • json (kwarg) – obiect serializat în JSON și trimis ca corp. Setează Content-Type: application/json.

  • files (kwarg) – dicționar care mapează un nume de câmp la (filename, fileobj). Trimis ca multipart/form-data.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii.

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

  • timeout (kwarg) – timeout-ul socket-ului în secunde (implicit 5.0). Măriți-l pentru puncte finale lente, cum ar fi API-urile LLM.

Transmite cel mult unul dintre data / json / files.

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

Trimite o cerere HTTP PUT și returnează un Response.

PUT înlocuiește resursa de la url cu reprezentarea furnizată, creând-o dacă nu există. Este idempotent: repetarea unui PUT identic produce aceeași stare finală.

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • data (kwarg) – corpul brut de înlocuire (de tip bytes).

  • json (kwarg) – obiect serializat în JSON și trimis ca corp de înlocuire. Setează Content-Type: application/json.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii.

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

Transmite fie data, fie json pentru a purta noua reprezentare.

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

Trimite o cerere HTTP PATCH și returnează un Response.

PATCH aplică o modificare parțială asupra resursei de la url – doar câmpurile conținute în corpul cererii se modifică. Spre deosebire de PUT, nu este obligatoriu să fie idempotent (deși multe API-uri îl fac astfel).

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • data (kwarg) – corpul brut delta (de tip bytes). Formatul depinde de server (de exemplu JSON Patch, JSON Merge Patch).

  • json (kwarg) – obiect delta serializat în JSON. Setează Content-Type: application/json.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii.

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

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

Trimite o cerere HTTP DELETE și returnează un Response.

DELETE solicită eliminarea resursei de la url. Este idempotent: ștergerea unei resurse deja șterse nu este o eroare (serverul returnează de obicei un 404, dar starea finală este aceeași).

Argumente:

  • url – URL-ul țintă; trebuie să înceapă cu http:// sau https://.

  • headers (kwarg) – dicționar de antete suplimentare ale cererii.

  • auth (kwarg) – tuplu (username, password) pentru autentificarea HTTP Basic.

Un corp prin data / json este permis de funcția subiacentă request(), dar rareori folosit cu DELETE.