Wie man Python `requests` für POST-Anfragen verwendet
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
- Die
requests.post()
-Methode vereinfacht das Senden von Formular- und JSON-Daten. - Sie können problemlos Dateien hochladen und benutzerdefinierte Header festlegen.
- Der korrekte Umgang mit dem Antwortobjekt ist entscheidend für robuste Anwendungen.
Die requests
-Bibliothek von Python ist ein leistungsstarkes Werkzeug, um HTTP-Anfragen zu stellen, einschließlich des Sendens von Daten an Server mithilfe der POST-Methode. Dieser Artikel bietet einen Überblick darüber, wie man die requests
-Bibliothek verwendet, um POST-Anfragen durchzuführen, wobei verschiedene Datenformate und Konfigurationen behandelt werden.
Installation der requests
-Bibliothek
Bevor Sie die requests
-Bibliothek verwenden, stellen Sie sicher, dass sie in Ihrer Python-Umgebung installiert ist. Sie können sie mit pip installieren:
pip install requests
Durchführung einer einfachen POST-Anfrage
Um eine POST-Anfrage zu senden, verwenden Sie die requests.post()
-Methode, wobei Sie die Ziel-URL und die zu sendenden Daten angeben. Standardmäßig werden die Daten mit einem Content-Type
-Header von application/x-www-form-urlencoded
gesendet.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
In diesem Beispiel wird das Dictionary data
als Formular kodiert und im Body der POST-Anfrage gesendet. Die Antwort des Servers wird dann ausgegeben.
Senden von JSON-Daten
Bei der Interaktion mit APIs, die JSON-formatierte Daten erwarten, können Sie den json
-Parameter in der post()
-Methode verwenden. Dieser Ansatz kodiert die Daten automatisch als JSON und setzt den Content-Type
-Header auf application/json
.
import requests url = 'https://httpbin.org/post' json_data = {'key': 'value'} response = requests.post(url, json=json_data) print(response.text)
Diese Methode vereinfacht das Senden von JSON-Daten im Vergleich zum manuellen Kodieren der Daten und Setzen von Headern.
Hochladen von Dateien
Die requests
-Bibliothek unterstützt auch das Hochladen von Dateien mithilfe des files
-Parameters. Um eine Datei hochzuladen, übergeben Sie ein Dictionary mit dem Dateinamen als Schlüssel und einem Dateiobjekt als Wert.
import requests url = 'https://httpbin.org/post' files = {'file': open('example.txt', 'rb')} response = requests.post(url, files=files) print(response.text)
Dies sendet die Datei als multipart/form-data-Anfrage.
Setzen von benutzerdefinierten Headern
Um benutzerdefinierte Header in Ihre POST-Anfrage einzufügen, verwenden Sie den headers
-Parameter. Dies ist nützlich, um Header wie Authorization
oder benutzerdefinierte Content-Type
zu setzen.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'} response = requests.post(url, data=data, headers=headers) print(response.text)
Stellen Sie sicher, dass die Header mit den Erwartungen des Servers übereinstimmen, um Probleme zu vermeiden.
Umgang mit der Antwort
Die Antwort von einer POST-Anfrage ist ein Response
-Objekt, das nützliche Attribute und Methoden enthält:
response.status_code
: HTTP-Statuscode der Antwort.response.text
: Inhalt der Antwort, in Unicode.response.json()
: Parsed die Antwort als JSON und gibt das Ergebnis zurück.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) if response.status_code == 200: print('Erfolg!') print(response.json()) else: print('Ein Fehler ist aufgetreten.')
Die korrekte Behandlung der Antwort stellt sicher, dass Ihre Anwendung angemessen auf unterschiedliche Ergebnisse reagieren kann.
Fazit
Die requests
-Bibliothek in Python vereinfacht den Prozess des Erstellens von HTTP-POST-Anfragen. Egal, ob Sie Formulardaten, JSON oder Dateien senden, requests
bietet eine unkomplizierte und flexible API, um diese Aufgaben effizient zu erledigen.
FAQs
Verwenden Sie den json=
-Parameter in requests.post()
anstelle von data=
.
Ja, indem Sie ein Dateiobjekt mit dem Parameter files
übergeben.
Fügen Sie ihn in das headers
-Dictionary ein und übergeben Sie es an den post()
-Aufruf.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Python-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Language-Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt viele Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollständig automatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Auto-Scaling zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Aufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ