requests — Klient HTTP#
Moduł requests udostępnia minimalne API klienta HTTP/HTTPS podobne do biblioteki Python requests. Każda funkcja żądania zwraca obiekt requests.Response.
Przykład:
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())
Klasa Response#
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)#
Reprezentuje odpowiedź HTTP. Instancje są zwracane przez
requests.requestoraz pomocnicze funkcje poszczególnych metod.- encoding: str#
Kodowanie znaków używane do dekodowania
requests.Response.headersirequests.Response.content. Domyślnie"utf-8".
- headers: str#
Nagłówki odpowiedzi zdekodowane przy użyciu
requests.Response.encodingi zwrócone jakostr.
- content: str#
Treść odpowiedzi zdekodowana przy użyciu
requests.Response.encodingi zwrócona jakostr.
- json() dict#
Parsuje
requests.Response.contentjako JSON i zwraca powstały obiekt.
Funkcje#
- 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#
Wysyła żądanie HTTP do
urli zwracarequests.Response.method— metoda HTTP jakostr(np."GET","POST").url— docelowy adres URL. Musi zaczynać się odhttp://lubhttps://.data— Surowa treść żądania.strjest kodowany w UTF-8 przed wysłaniem. Jeśli ustawiono,Content-Lengthjest dodawany automatycznie.json— obiekt serializowany do JSON i wysyłany jako treść. UstawiaContent-Type: application/json.files— słownik mapujący nazwę pola na krotkę(filename, fileobj). Wysyłane jakomultipart/form-data.headers— Słownik dodatkowych nagłówków żądania. Słownik jest kopiowany, więc słownik wywołującego nigdy nie jest modyfikowany (a nagłówekAuthorizationdodany dlaauthnie przenika do późniejszych żądań, które go ponownie używają).auth— krotka(username, password)dla uwierzytelniania HTTP Basic.stream— akceptowane dla zgodności API; nieużywane.timeout— Limit czasu gniazda w sekundach, stosowany po nawiązaniu połączenia. Domyślnie5.0; przekażNone, aby blokować w nieskończoność. Po jego upływie zgłaszany jestOSError.
Odpowiedzi wysłane z
Transfer-Encoding: chunkedsą dekodowane przezroczyście, więcrequests.Response.contentzawsze zawiera treść po złożeniu fragmentów. Nagłówki odpowiedzi są dopasowywane bez rozróżniania wielkości liter. Przekierowania nie są śledzone: odpowiedź 3xx z nagłówkiemLocationzgłaszaNotImplementedError.
- requests.head(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
HEADi zwracaResponse.HEADjest identyczne zGET, z tą różnicą, że serwer odpowiada tylko linią statusu i nagłówkami; treść jest pusta. Użyj go, aby sprawdzić, czy zasób istnieje, sprawdzićContent-Length/Content-Typebez pobierania ładunku lub przetestować adres URL przed wykonaniem cięższegoGET.Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.headers(kwarg) – słownik dodatkowych nagłówków żądania.auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.
data/json/files/streamzrequest()są akceptowane dla kompletności, ale rzadko mają sens w przypadkuHEAD.
- requests.get(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
GETi zwracaResponse.GETto standardowy czasownik służący do pobierania reprezentacji zasobu wskazanego przezurl. Jest bezpieczny (nie powoduje zmiany stanu po stronie serwera) i idempotentny.Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.headers(kwarg) – słownik dodatkowych nagłówków żądania (na przykładAuthorizationlubAccept).auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.timeout(argument nazwany) – limit czasu gniazda w sekundach (domyślnie5.0).
Treść żądania przez
data/jsonjest dozwolona przez leżące u podstawrequest(), ale ignorowana przez większość serwerów.
- requests.post(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
POSTi zwracaResponse.POSTprzesyła dane dourl, zazwyczaj tworząc nowy podrzędny zasób, wyzwalając przesłanie formularza lub wywołując akcję. Nie jest ani bezpieczny, ani idempotentny: powtarzane wywołania mogą tworzyć zduplikowane zasoby.Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.data(kwarg) – surowa treść żądania (typubytes). Automatycznie wysyła nagłówekContent-Length.json(kwarg) – obiekt serializowany do JSON i wysyłany jako treść. UstawiaContent-Type: application/json.files(kwarg) – słownik mapujący nazwę pola na(filename, fileobj). Wysyłane jakomultipart/form-data.headers(kwarg) – słownik dodatkowych nagłówków żądania.auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.timeout(argument nazwany) – limit czasu gniazda w sekundach (domyślnie5.0). Zwiększ go dla wolnych punktów końcowych, takich jak API LLM.
Przekaż co najwyżej jedno z
data/json/files.
- requests.put(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
PUTi zwracaResponse.PUTzastępuje zasób podurldostarczoną reprezentacją, tworząc go, jeśli nie istnieje. Jest idempotentny: powtórzenie identycznegoPUTdaje ten sam stan końcowy.Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.data(kwarg) – surowa treść zastępująca (typubytes).json(kwarg) – obiekt serializowany do JSON i wysyłany jako treść zastępująca. UstawiaContent-Type: application/json.headers(kwarg) – słownik dodatkowych nagłówków żądania.auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.
Przekaż
datalubjson, aby przenieść nową reprezentację.
- requests.patch(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
PATCHi zwracaResponse.PATCHstosuje częściową modyfikację zasobu podurl– zmieniają się tylko pola zawarte w treści żądania. W przeciwieństwie doPUTnie musi być idempotentny (choć wiele API czyni go takim).Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.data(kwarg) – surowa treść różnicowa (typubytes). Format zależy od serwera (np. JSON Patch, JSON Merge Patch).json(kwarg) – obiekt różnicowy serializowany do JSON. UstawiaContent-Type: application/json.headers(kwarg) – słownik dodatkowych nagłówków żądania.auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.
- requests.delete(url: str, **kw: Any) Response#
Wysyła żądanie HTTP
DELETEi zwracaResponse.DELETEżąda usunięcia zasobu podurl. Jest idempotentny: usunięcie już usuniętego zasobu nie jest błędem (serwer zazwyczaj zwraca 404, ale stan końcowy jest taki sam).Argumenty:
url– docelowy adres URL; musi zaczynać się odhttp://lubhttps://.headers(kwarg) – słownik dodatkowych nagłówków żądania.auth(kwarg) – krotka(username, password)dla uwierzytelniania HTTP Basic.
Treść przez
data/jsonjest dozwolona przez leżące u podstawrequest(), ale rzadko używana zDELETE.