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.requesta pomocné funkce pro jednotlivé metody.- encoding: str¶
Kódování řetězce použité k dekódování
requests.Response.headersarequests.Response.content. Výchozí hodnota je"utf-8".
- headers: str¶
Hlavičky odpovědi dekódované pomocí
requests.Response.encodinga vrácené jakostr.
- content: str¶
Tělo odpovědi dekódované pomocí
requests.Response.encodinga vrácené jakostr.
- json() dict¶
Parsuje
requests.Response.contentjako 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
urla vrátírequests.Response.method— metoda HTTP jakostr(např."GET","POST").url— cílová URL. Musí začínathttp://nebohttps://.data— surové tělo požadavku. Pokud je nastaveno, je automaticky přidána hlavičkaContent-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 jakomultipart/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
HEADa vrátíResponse.HEADje shodný sGETaž 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-Typebez stahování užitečného zatížení nebo k otestování URL před vydáním náročnějšíhoGET.Argumenty:
url– cílová URL; musí začínathttp://nebohttps://.headers(kwarg) – slovník dalších hlaviček požadavku.auth(kwarg) – n-tice(username, password)pro HTTP Basic autentizaci.
data/json/files/streamzrequest()jsou přijímány pro úplnost, ale uHEADmají zřídka smysl.
- requests.get(url: str, **kw: Any) Response¶
Odešle požadavek HTTP
GETa vrátíResponse.GETje 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čínathttp://nebohttps://.headers(kwarg) – slovník dalších hlaviček požadavku (napříkladAuthorizationneboAccept).auth(kwarg) – n-tice(username, password)pro HTTP Basic autentizaci.
Tělo požadavku přes
data/jsonje podkladovou funkcírequest()povoleno, ale většinou serverů ignorováno.
- requests.post(url: str, **kw: Any) Response¶
Odešle požadavek HTTP
POSTa vrátíResponse.POSTodesílá data naurl, 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čínathttp://nebohttps://.data(kwarg) – surové tělo požadavku (podobnébytes). Automaticky odesílá hlavičkuContent-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 jakomultipart/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
PUTa vrátíResponse.PUTnahrazuje zdroj naurldodanou reprezentací a vytvoří jej, pokud neexistuje. Je idempotentní: opakování shodnéhoPUTvede ke stejnému konečnému stavu.Argumenty:
url– cílová URL; musí začínathttp://nebohttps://.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, nebojson.
- requests.patch(url: str, **kw: Any) Response¶
Odešle požadavek HTTP
PATCHa vrátíResponse.PATCHaplikuje částečnou úpravu zdroje naurl– mění se pouze pole obsažená v těle požadavku. Na rozdíl odPUTnemusí být idempotentní (ačkoli mnoho API jej takovým činí).Argumenty:
url– cílová URL; musí začínathttp://nebohttps://.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
DELETEa vrátíResponse.DELETEpožaduje odstranění zdroje naurl. 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čínathttp://nebohttps://.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/jsonje podkladovou funkcírequest()povoleno, ale uDELETEse používá zřídka.