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 | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) 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. 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.

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

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

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.

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.

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.