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



