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 | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) 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. Jeśli ustawione,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.auth— krotka(username, password)dla uwierzytelniania HTTP Basic.stream— akceptowane dla zgodności API; nieużywane.
- 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.
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.
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.