requests — HTTP-Client#

Das Modul requests stellt eine minimale HTTP/HTTPS-Client-API bereit, die der Python requests-Bibliothek ähnelt. Jede Anfragefunktion gibt ein requests.Response-Objekt zurück.

Beispiel:

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())

Response-Klasse#

class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)#

Stellt eine HTTP-Antwort dar. Instanzen werden von requests.request und den Hilfsfunktionen pro Methode zurückgegeben.

status_code: int#

Ganzzahliger HTTP-Statuscode, der vom Server zurückgegeben wird.

reason: str#

Begründungstext, der vom Server zurückgegeben wird (decodiert als str).

encoding: str#

Zeichenkodierung, die zum Decodieren von requests.Response.headers und requests.Response.content verwendet wird. Standardwert "utf-8".

headers: str#

Antwort-Header, decodiert mit requests.Response.encoding und als str zurückgegeben.

content: str#

Antwortkörper, decodiert mit requests.Response.encoding und als str zurückgegeben.

json() → dict#

Parst requests.Response.content als JSON und gibt das resultierende Objekt zurück.

Funktionen#

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#

Sendet eine HTTP-Anfrage an url und gibt ein requests.Response zurück.

  • method — HTTP-Methode als str (z. B. "GET", "POST").

  • url — Ziel-URL. Muss mit http:// oder https:// beginnen.

  • data — Roher Anfrage-Body. Ein str wird vor dem Senden UTF-8-kodiert. Falls gesetzt, wird Content-Length automatisch hinzugefügt.

  • json — Objekt, das in JSON serialisiert und als Körper gesendet wird. Setzt Content-Type: application/json.

  • files — Dict, das einen Feldnamen auf ein (filename, fileobj)-Tupel abbildet. Wird als multipart/form-data gesendet.

  • headers — Dict zusätzlicher Anfrage-Header. Das Dict wird kopiert, sodass das Dict des Aufrufers nie verändert wird (und ein für auth hinzugefügter Authorization-Header nicht in spätere Anfragen durchsickert, die es wiederverwenden).

  • auth — (username, password)-Tupel für HTTP-Basic-Authentifizierung.

  • stream — Wird aus Gründen der API-Kompatibilität akzeptiert; nicht verwendet.

  • timeout — Socket-Timeout in Sekunden, angewendet sobald die Verbindung aufgebaut ist. Standardwert 5.0; übergeben Sie None, um unbegrenzt zu blockieren. Bei Ablauf wird ein OSError ausgelöst.

Antworten, die mit Transfer-Encoding: chunked gesendet werden, werden transparent decodiert, sodass requests.Response.content immer den wieder zusammengesetzten Body enthält. Antwort-Header werden ohne Berücksichtigung der Groß-/Kleinschreibung abgeglichen. Weiterleitungen werden nicht verfolgt: Eine 3xx-Antwort mit Location-Header löst NotImplementedError aus.

requests.head(url: str, **kw: Any) → Response#

Sendet eine HTTP-HEAD-Anfrage und gibt ein Response zurück.

HEAD ist identisch mit GET, außer dass der Server nur mit der Statuszeile und den Headern antwortet; der Körper ist leer. Verwenden Sie es, um zu prüfen, ob eine Ressource existiert, Content-Length / Content-Type zu inspizieren, ohne die Nutzlast herunterzuladen, oder eine URL zu prüfen, bevor ein aufwendigeres GET ausgegeben wird.

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern.

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

data / json / files / stream aus request() werden der Vollständigkeit halber akzeptiert, ergeben aber selten Sinn für HEAD.

requests.get(url: str, **kw: Any) → Response#

Sendet eine HTTP-GET-Anfrage und gibt ein Response zurück.

GET ist das Standardverb zum Abrufen einer Repräsentation der durch url identifizierten Ressource. Es ist sicher (verursacht keine serverseitige Zustandsänderung) und idempotent.

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern (zum Beispiel Authorization oder Accept).

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

  • timeout (kwarg) – Socket-Timeout in Sekunden (Standard 5.0).

Ein Anfragekörper über data / json ist durch das zugrunde liegende request() erlaubt, wird aber von den meisten Servern ignoriert.

requests.post(url: str, **kw: Any) → Response#

Sendet eine HTTP-POST-Anfrage und gibt ein Response zurück.

POST übermittelt Daten an url, wobei typischerweise eine neue untergeordnete Ressource erstellt, ein Formular abgesendet oder eine Aktion ausgelöst wird. Es ist weder sicher noch idempotent: Wiederholte Aufrufe können doppelte Ressourcen erzeugen.

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • data (kwarg) – roher Anfragekörper (bytes-ähnlich). Sendet automatisch einen Content-Length-Header.

  • json (kwarg) – Objekt, das in JSON serialisiert und als Körper gesendet wird. Setzt Content-Type: application/json.

  • files (kwarg) – Dict, das einen Feldnamen auf (filename, fileobj) abbildet. Wird als multipart/form-data gesendet.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern.

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

  • timeout (kwarg) – Socket-Timeout in Sekunden (Standard 5.0). Erhöhen Sie ihn für langsame Endpunkte wie LLM-APIs.

Übergeben Sie höchstens eines von data / json / files.

requests.put(url: str, **kw: Any) → Response#

Sendet eine HTTP-PUT-Anfrage und gibt ein Response zurück.

PUT ersetzt die Ressource unter url durch die gelieferte Repräsentation und erstellt sie, falls sie nicht existiert. Es ist idempotent: Das Wiederholen eines identischen PUT führt zum gleichen Endzustand.

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • data (kwarg) – roher Ersatzkörper (bytes-ähnlich).

  • json (kwarg) – Objekt, das in JSON serialisiert und als Ersatzkörper gesendet wird. Setzt Content-Type: application/json.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern.

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

Übergeben Sie entweder data oder json, um die neue Repräsentation zu übermitteln.

requests.patch(url: str, **kw: Any) → Response#

Sendet eine HTTP-PATCH-Anfrage und gibt ein Response zurück.

PATCH wendet eine partielle Änderung auf die Ressource unter url an – nur die im Anfragekörper enthaltenen Felder ändern sich. Anders als PUT muss es nicht idempotent sein (obwohl viele APIs es so gestalten).

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • data (kwarg) – roher Delta-Körper (bytes-ähnlich). Das Format hängt vom Server ab (z. B. JSON Patch, JSON Merge Patch).

  • json (kwarg) – Delta-Objekt, das in JSON serialisiert wird. Setzt Content-Type: application/json.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern.

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

requests.delete(url: str, **kw: Any) → Response#

Sendet eine HTTP-DELETE-Anfrage und gibt ein Response zurück.

DELETE fordert die Entfernung der Ressource unter url an. Es ist idempotent: Das Löschen einer bereits gelöschten Ressource ist kein Fehler (der Server gibt typischerweise einen 404 zurück, aber der Endzustand ist derselbe).

Argumente:

  • url – Ziel-URL; muss mit http:// oder https:// beginnen.

  • headers (kwarg) – Dict mit zusätzlichen Anfrage-Headern.

  • auth (kwarg) – (username, password)-Tupel für HTTP-Basic-Authentifizierung.

Ein Körper über data / json ist durch das zugrunde liegende request() erlaubt, wird aber selten mit DELETE verwendet.