So verwenden Sie die Requests-Bibliothek von Python für HTTP
Die requests
-Bibliothek ist ein beliebtes Python-Modul, das den Prozess der Erstellung von HTTP-Anfragen vereinfacht. Es abstrahiert die Komplexität der Verarbeitung von Anfragen und Antworten und erleichtert so die Interaktion mit Webdiensten und APIs. In diesem Artikel erkunden wir die Grundlagen der Verwendung der requests
-Bibliothek, einschließlich der Frage, wie verschiedene Arten von HTTP-Anfragen gesendet und Antworten verarbeitet werden.
Installieren der Requests-Bibliothek
Bevor Sie die Bibliothek requests
verwenden können, müssen Sie sie installieren. Sie können sie mit pip
, dem Python-Paketmanager, installieren. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
pip install requests
Erstellen einer einfachen GET-Anfrage
Die einfachste HTTP-Anfrage ist eine GET-Anfrage, die Daten von einem Server abruft. So können Sie die Bibliothek requests
verwenden, um eine GET-Anfrage zu stellen:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
In diesem Beispiel senden wir eine GET-Anfrage an die GitHub-API und drucken den HTTP-Statuscode und den Antwortinhalt im JSON-Format.
Senden von POST-Anfragen
POST-Anfragen werden verwendet, um Daten an einen Server zu senden, z. B. Formulareinsendungen. So senden Sie eine POST-Anfrage mit der Bibliothek requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
In diesem Beispiel senden wir eine POST-Anfrage mit einigen Formulardaten an den Testdienst von httpbin.org und drucken den Statuscode und den Inhalt der Antwort aus.
Verarbeiten von Abfrageparametern
Manchmal müssen Sie Abfrageparameter in Ihre Anfragen einschließen. Die requests
-Bibliothek macht dies einfach, indem sie Ihnen erlaubt, Parameter als Wörterbuch zu übergeben:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
In diesem Beispiel schließen wir Abfrageparameter in eine GET-Anfrage ein und drucken die endgültige URL mit den enthaltenen Parametern.
Arbeiten mit Headern
Möglicherweise müssen Sie Ihren Anfragen benutzerdefinierte Header hinzufügen, z. B. zur Authentifizierung oder zum Angeben von Inhaltstypen. So fügen Sie Ihren Anfragen Header hinzu:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
In diesem Beispiel fügen wir der Anforderung an die GitHub-API einen Autorisierungsheader hinzu und drucken den Statuscode und den Antwortinhalt aus.
Behandeln von Timeouts und Ausnahmen
Es ist wichtig, potenzielle Probleme wie Netzwerktimeouts und andere Ausnahmen zu behandeln. Die requests
-Bibliothek ermöglicht es Ihnen, Timeouts anzugeben und Ausnahmen abzufangen:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
In diesem Beispiel legen wir ein Timeout für die Anforderung fest und fangen alle auftretenden Ausnahmen ab. Wenn etwas schief geht, drucken wir eine Fehlermeldung.
Abschluss
Die requests
-Bibliothek ist ein leistungsstarkes und benutzerfreundliches Tool zum Erstellen von HTTP-Anfragen in Python. Egal, ob Sie Daten von APIs abrufen, Formulare senden oder benutzerdefinierte Header verarbeiten, die requests
-Bibliothek macht es einfach, diese Aufgaben mit nur wenigen Codezeilen auszuführen. Wenn Sie die in diesem Artikel behandelten Grundlagen beherrschen, sind Sie gut gerüstet, um in Ihren Python-Projekten mit Webdiensten und APIs zu interagieren.