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ă.- encoding: str¶
Codificarea șirului folosită pentru a decoda
requests.Response.headersșirequests.Response.content. Implicit"utf-8".
- headers: str¶
Antetele răspunsului decodate cu
requests.Response.encodingși returnate castr.
- content: str¶
Corpul răspunsului decodat cu
requests.Response.encodingși returnat castr.
- json() dict¶
Analizează
requests.Response.contentca 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ă unrequests.Response.method— metoda HTTP castr(de exemplu"GET","POST").url— URL-ul țintă. Trebuie să înceapă cuhttp://sauhttps://.data— corpul brut al cererii. Dacă este setat,Content-Lengtheste 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 camultipart/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ă unResponse.HEADeste identic cuGETcu 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 inspectaContent-Length/Content-Typefără a descărca încărcătura utilă, sau pentru a sonda un URL înainte de a emite unGETmai costisitor.Argumente:
url– URL-ul țintă; trebuie să înceapă cuhttp://sauhttps://.headers(kwarg) – dicționar de antete suplimentare ale cererii.auth(kwarg) – tuplu(username, password)pentru autentificarea HTTP Basic.
data/json/files/streamdinrequest()sunt acceptate pentru completitudine, dar rareori au sens pentruHEAD.
- requests.get(url: str, **kw: Any) Response¶
Trimite o cerere HTTP
GETși returnează unResponse.GETeste verbul standard pentru recuperarea unei reprezentări a resursei identificate deurl. Este sigur (nu provoacă nicio modificare de stare pe partea serverului) și idempotent.Argumente:
url– URL-ul țintă; trebuie să înceapă cuhttp://sauhttps://.headers(kwarg) – dicționar de antete suplimentare ale cererii (de exempluAuthorizationsauAccept).auth(kwarg) – tuplu(username, password)pentru autentificarea HTTP Basic.
Un corp de cerere prin
data/jsoneste 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ă unResponse.POSTtrimite date cătreurl, 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ă cuhttp://sauhttps://.data(kwarg) – corpul brut al cererii (de tipbytes). Trimite automat un antetContent-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 camultipart/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ă unResponse.PUTînlocuiește resursa de laurlcu reprezentarea furnizată, creând-o dacă nu există. Este idempotent: repetarea unuiPUTidentic produce aceeași stare finală.Argumente:
url– URL-ul țintă; trebuie să înceapă cuhttp://sauhttps://.data(kwarg) – corpul brut de înlocuire (de tipbytes).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, fiejsonpentru a purta noua reprezentare.
- requests.patch(url: str, **kw: Any) Response¶
Trimite o cerere HTTP
PATCHși returnează unResponse.PATCHaplică o modificare parțială asupra resursei de laurl– doar câmpurile conținute în corpul cererii se modifică. Spre deosebire dePUT, nu este obligatoriu să fie idempotent (deși multe API-uri îl fac astfel).Argumente:
url– URL-ul țintă; trebuie să înceapă cuhttp://sauhttps://.data(kwarg) – corpul brut delta (de tipbytes). 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ă unResponse.DELETEsolicită eliminarea resursei de laurl. 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ă cuhttp://sauhttps://.headers(kwarg) – dicționar de antete suplimentare ale cererii.auth(kwarg) – tuplu(username, password)pentru autentificarea HTTP Basic.
Un corp prin
data/jsoneste permis de funcția subiacentărequest(), dar rareori folosit cuDELETE.