HTTP-Anfragen mit Requests in Python senden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Installation und Einrichtung der Requests-Bibliothek

Die Requests-Bibliothek ist nicht im Standardumfang von Python enthalten und muss daher separat installiert werden. Führe dazu folgenden Befehl im Terminal aus:

pip install requests

Um die erfolgreiche Installation zu überprüfen, führe folgenden Code aus:

import requests
print(requests.__version__)

Was sind HTTP-Anfragen und warum braucht man die Requests-Bibliothek?

HTTP (HyperText Transfer Protocol) ist ein Protokoll zur Datenübertragung zwischen Client und Server. Requests ist eine externe Python-Bibliothek, die das Senden von HTTP-Anfragen im Vergleich zu den integrierten Modulen wie urllib erheblich vereinfacht.

Die wichtigsten Vorteile von Requests

  • Einfach in der Anwendung und lesbarer Code
  • Unterstützung aller HTTP-Methoden (GET, POST, PUT, DELETE, PATCH)
  • Automatische Verarbeitung von JSON-Daten
  • Integrierte Unterstützung für Cookies und Sessions
  • Flexible Konfiguration von Headern und Parametern
  • Fehler- und Ausnahmebehandlung
  • Unterstützung für Proxy-Server und SSL-Zertifikate

Wichtige HTTP-Methoden mit praktischen Beispielen

GET-Anfragen: Daten abrufen

Eine GET-Anfrage wird verwendet, um Daten vom Server abzurufen, ohne diese zu verändern.

import requests

# Einfache GET-Anfrage
response = requests.get('https://api.github.com')
print(response.status_code)  # 200
print(response.text)         # Inhalt der Antwort

Parameter in einer GET-Anfrage übergeben

# Parameter als Dictionary übergeben
params = {
    'q': 'python',
    'sort': 'stars',
    'order': 'desc',
    'page': 1
}

response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url)  # Überprüfe die finale URL mit Parametern

POST-Anfragen: Daten senden

Eine POST-Anfrage wird verwendet, um Daten an den Server zu senden und neue Ressourcen zu erstellen.

# POST-Anfrage mit Formulardaten
data = {
    'username': 'test_user',
    'password': 'secure_password',
    'email': 'test@example.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.json())

POST-Anfrage mit JSON-Daten

# JSON-Daten senden
json_data = {
    'title': 'Neuer Beitrag',
    'body': 'Inhalt des Beitrags',
    'userId': 1
}

response = requests.post(
    'https://jsonplaceholder.typicode.com/posts',
    json=json_data
)
print(response.json())

PUT-Anfragen: Daten aktualisieren

Eine PUT-Anfrage wird verwendet, um vorhandene Ressourcen vollständig zu aktualisieren.

update_data = {
    'id': 1,
    'title': 'Aktualisierter Titel',
    'body': 'Neuer Inhalt',
    'userId': 1
}

response = requests.put(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=update_data
)
print(f"Status: {response.status_code}")
print(response.json())

PATCH-Anfragen: Teilweise Aktualisierung

PATCH wird verwendet, um eine Ressource teilweise zu aktualisieren.

patch_data = {'title': 'Teilweise aktualisierter Titel'}

response = requests.patch(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=patch_data
)
print(response.json())

DELETE-Anfragen: Daten löschen

Eine DELETE-Anfrage wird verwendet, um Ressourcen auf dem Server zu löschen.

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Löschstatus: {response.status_code}")

Arbeiten mit HTTP-Headern

Header enthalten Metadaten über die Anfrage und ermöglichen es, zusätzliche Informationen an den Server zu übermitteln.

headers = {
    'User-Agent': 'Mozilla                

Blogs

Buchempfehlungen