```html
Möchten Sie JSON-Daten mit Python Requests an einen Server senden? Dann sind Sie hier genau richtig! In diesem Blogbeitrag erfahren Sie, wie Sie Python Requests verwenden, um JSON-Daten per POST zu senden. Wir behandeln alles, von den Grundlagen des Sendens einer POST-Anfrage bis hin zur Verarbeitung der vom Server empfangenen Antwort und sogar der Behandlung von Fehlern, die dabei auftreten können. Also, fangen wir an!
Python Requests
Python Requests ist eine Python 3.7+-Bibliothek, die den Prozess des Sendens von HTTP/1.1-Anfragen vereinfacht. Sie bietet eine einfache API für die Interaktion mit HTTP-Methoden wie GET, POST, PUT, PATCH und mehr.
Python Requests: POST HTTP-Methode
Der folgende Codeausschnitt zeigt, wie Sie die requests
-Bibliothek verwenden, um eine HTTP POST-Anfrage zu senden:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)
print(response.status_code)
print(response.content)
In diesem Beispiel senden wir eine HTTP POST-Anfrage an https://www.example.com/api
mit einer JSON-Nutzlast, die einen Benutzernamen und ein Passwort enthält. Die Methode requests.post()
wird verwendet, um die Anfrage zu senden, und der Antwortstatuscode und der Inhalt werden in der Konsole ausgegeben.
Sie können die requests
-Bibliothek mit dem folgenden Befehl installieren:
python -m pip install requests
In diesem Blogbeitrag konzentrieren wir uns darauf, wie Sie Python Requests verwenden, um eine POST-Anfrage mit JSON-Daten zu senden.
Was ist JSON?
JSON steht für JavaScript Object Notation. Es ist ein standardisiertes Format zur Darstellung strukturierter Daten. Es ist ein textbasiertes Format, das menschenlesbaren Text verwendet, um Datenobjekte zu speichern und zu übertragen, die aus Attribut-Wert-Paaren und Arrays (oder anderen serialisierbaren Werten) bestehen. JSON wird häufig für die Übertragung von Daten in Webanwendungen verwendet, z. B. zum Senden von Daten vom Server an den Client oder umgekehrt.
JSON kann nativ sechs Datentypen darstellen: Strings, Zahlen, Booleans, Null, Arrays und Objekte. Hier ist beispielsweise eine JSON-Darstellung eines Blogbeitrags:
{
"id": 1001,
"title": "What is JSON?",
"author": {
"id": 1,
"name": "James Walker"
},
"tags": [
"api",
"json",
"programming"
],
"published": false,
"publishedTimestamp": null
}
Dieses Beispiel demonstriert alle JSON-Datentypen. Es veranschaulicht auch die Prägnanz von JSON-formatierten Daten, eine der Eigenschaften, die es für die Verwendung in APIs so attraktiv gemacht hat.
Mit anderen Worten, es ist ein leichtgewichtiges Datenaustauschformat, das für Menschen leicht zu lesen und zu schreiben ist und für Maschinen leicht zu parsen und zu generieren ist. JSON ist ein Textformat, das völlig sprachunabhängig ist, was es zu einer idealen Wahl für den Datenaustausch zwischen verschiedenen Programmiersprachen macht.

Die POST-Anfragemethode verstehen
Eine POST-Anfrage ist eine Art von HTTP-Anfragemethode, die verwendet wird, um Daten an einen Server zu senden, um eine Ressource zu erstellen oder zu aktualisieren. Sie wird häufig verwendet, wenn eine Datei hochgeladen oder ein ausgefülltes Webformular gesendet wird. Die POST-Anfragemethode fordert, dass ein Webserver die im Text der Anfragenachricht enthaltenen Daten akzeptiert, höchstwahrscheinlich, um sie zu speichern.
Das standardisierte Format von JSON zur Darstellung von Objekten und Daten macht es zu einer beliebten Wahl für das Senden von Daten in POST-Anfragen. Durch die Verwendung von JSON können Entwickler sicherstellen, dass die an den Server gesendeten Daten gut organisiert und leicht verständlich sind, wodurch die Effizienz der Ressourcenerstellung und -aktualisierung verbessert wird.

Im Gegensatz zur HTTP GET-Anfragemethode, die Informationen vom Server abruft, fordert die POST-Anfragemethode, dass ein Webserver die im Text der Anfragenachricht enthaltenen Daten akzeptiert, höchstwahrscheinlich, um sie zu speichern. Eine beliebige Datenmenge beliebigen Typs kann im Text der Anfragenachricht an den Server gesendet werden.

Hier ist ein Beispiel für die Verwendung der requests
-Bibliothek zum Senden einer HTTP POST-Anfrage:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)
print(response.status_code)
print(response.content)
In diesem Beispiel senden wir eine HTTP POST-Anfrage an https://www.example.com/api
mit einer JSON-Nutzlast, die einen Benutzernamen und ein Passwort enthält. Die Methode requests.post()
wird verwendet, um die Anfrage zu senden, und der Antwortstatuscode und der Inhalt werden in der Konsole ausgegeben.
Wie verwende ich Python Requests, um JSON-Daten per POST zu senden?
Nachdem wir nun ein grundlegendes Verständnis davon haben, was Python Requests und JSON sind, wollen wir uns damit befassen, wie man Python Requests verwendet, um JSON-Daten per POST zu senden. Hier ist ein Beispiel, wie das geht:
import requests
import json
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)
print(response.status_code)
print(response.content)
In diesem Beispiel senden wir eine HTTP POST-Anfrage an https://www.example.com/api
mit einer JSON-Nutzlast, die einen Benutzernamen und ein Passwort enthält. Die Methode requests.post()
wird verwendet, um die Anfrage zu senden, und der Antwortstatuscode und der Inhalt werden in der Konsole ausgegeben. Beachten Sie, dass wir die Methode json.dumps()
verwenden, um das data
-Wörterbuch in eine JSON-Zeichenkette zu konvertieren, bevor wir es im Anfragetext senden.
Sie können die requests
-Bibliothek mit dem folgenden Befehl installieren:
python -m pip install requests
Die Antwort verarbeiten
Nach dem Senden der POST-Anfrage erhalten wir eine Antwort vom Server. Wir können die Antwort mit dem response
-Objekt verarbeiten, das wir zuvor erstellt haben. Hier ist ein Beispiel für die Verarbeitung der Antwort:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
print('Success!')
else:
print('An error occurred.')
In diesem Beispiel überprüfen wir den Statuscode der Antwort, um festzustellen, ob die Anfrage erfolgreich war. Wenn der Statuscode 200 ist, geben wir „Success!“ aus. Andernfalls geben wir „An error occurred.“ aus.
Fehlerbehandlung
Manchmal laufen die Dinge nicht wie geplant. Für den Fall, dass beim Senden der POST-Anfrage ein Fehler auftritt, möchten wir ihn ordnungsgemäß behandeln. Hier ist ein Beispiel für die Fehlerbehandlung:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
try:
response = requests.post(url, json=data, headers=headers)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
In diesem Beispiel verwenden wir einen try
/except
-Block, um alle Fehler abzufangen, die beim Senden der POST-Anfrage auftreten können. Wenn ein Fehler auftritt, geben wir die Fehlermeldung aus.
Wie man Python POST-Anfragen mit JSON-Daten in Apidog sendet?
Apidog ist eine leistungsstarke Testlösung, die Entwicklern eine robustere Schnittstellentesterfahrung bietet. Seine erweiterten Funktionen wie das Erstellen benutzerdefinierter Testfälle, das Generieren von Berichten und das Lasttesten ermöglichen Entwicklern mehr Flexibilität und Fähigkeiten innerhalb ihrer Testworkflows. Im Vergleich zu Postman zeichnet sich Apidog als umfassendere und leistungsstärkere Testlösung aus.
Um eine POST-Anfrage mit JSON-Daten in Apidog zu senden, gehen Sie wie folgt vor:
Schritt 1: Öffnen Sie Apidog und erstellen Sie eine neue Anfrage.

Schritt 2: Klicken Sie auf die Registerkarte Anfrage und wählen Sie POST aus dem Dropdown-Menü aus.

Schritt 3: Geben Sie die URL des API-Endpunkts ein, den Sie testen möchten. Fügen Sie im Abschnitt Header alle erforderlichen Header hinzu. Wählen Sie im Abschnitt Body JSON aus dem Dropdown-Menü aus und geben Sie die JSON-Daten ein, die Sie im Anfragetext senden möchten.

Schritt 4: Klicken Sie auf die Schaltfläche Senden, um die Anfrage zu senden und die Antwort zu überprüfen.

Das ist es! Sie haben erfolgreich eine Python POST-Anfrage mit JSON-Daten in Apidog gesendet.
Fazit
In diesem Blogbeitrag haben wir behandelt, wie man Python Requests verwendet, um JSON-Daten per POST zu senden. Wir haben die Grundlagen des Sendens einer POST-Anfrage, der Verarbeitung der Antwort und der Fehlerbehandlung behandelt. Wir hoffen, dass dieser Blogbeitrag für Sie hilfreich war und dass Sie jetzt in der Lage sind, Python Requests zu verwenden, um JSON-Daten problemlos per POST zu senden!
FAQ: Python Requests - Senden von JSON-Daten
1. Was ist der Unterschied zwischen GET- und POST-Anfragen in Python Requests?
GET-Anfragen werden verwendet, um Daten von einem Server abzurufen, während POST-Anfragen verwendet werden, um Daten an den Server zu senden, um Ressourcen zu erstellen oder zu aktualisieren. In Python Requests verwenden Sie requests.get()
für GET-Anfragen und requests.post()
für POST-Anfragen.
2. Wie füge ich Header ein, wenn ich eine POST-Anfrage mit JSON-Daten sende?
Um Header in eine POST-Anfrage einzufügen, können Sie den Parameter headers
in der Methode requests.post()
verwenden. Um beispielsweise den Inhaltstyp als JSON anzugeben:
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=data, headers=headers)
3. Warum sollte ich den Parameter json
anstelle von data
verwenden, wenn ich JSON-Daten sende?
Wenn Sie den Parameter json
verwenden, konvertiert Python Requests Ihr Python-Wörterbuch automatisch in eine JSON-Zeichenkette und legt den richtigen Content-Type
-Header (application/json
) fest. Dadurch entfällt die Notwendigkeit, die Daten manuell mit json.dumps()
zu serialisieren.
Zum Beispiel:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
4. Wie kann ich Nicht-200-Statuscodes in der Antwort verarbeiten?
Um Fehler in HTTP-Antworten zu behandeln, können Sie den Statuscode der Antwort überprüfen und entsprechende Maßnahmen ergreifen. Hier ist ein Beispiel:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
if response.status_code == 200:
print("Request was successful")
else:
print(f"Failed with status code: {response.status_code}")
5. Was soll ich tun, wenn der Server einen Fehler zurückgibt, wenn die Anfrage gesendet wird?
Sie können einen try/except
-Block verwenden, um potenzielle Ausnahmen beim Erstellen der Anfrage abzufangen. Zum Beispiel:
try:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
response.raise_for_status() # Will raise an exception for 4xx/5xx responses
except requests.exceptions.RequestException as e:
print(f"Error occurred: {e}")
6. Wie sende ich JSON-Daten in einer POST-Anfrage, ohne den Parameter json
zu verwenden?
Wenn Sie den Parameter json
nicht verwenden möchten, können Sie Ihre Daten manuell mit der Methode json.dumps()
serialisieren und sie im Parameter data
übergeben. Stellen Sie jedoch sicher, dass Sie den richtigen Header festlegen:
import json
headers = {'Content-Type': 'application/json'}
data = json.dumps({'username': 'user1', 'password': 'password'})
response = requests.post(url, data=data, headers=headers)
7. Kann ich POST-Anfragen mit JSON-Daten in Apidog testen?
Ja, Sie können POST-Anfragen mit JSON-Daten in Apidog testen. Wählen Sie einfach die POST-Methode aus, geben Sie die URL ein, legen Sie den Inhaltstyp in den Headern auf JSON fest und geben Sie Ihre JSON-Daten in den Text der Anfrage ein. Apidog ermöglicht es Ihnen auch, die Antwort zu überprüfen und effizient zu validieren, was es zu einem großartigen Werkzeug für API-Tests macht.
8. Wie kann ich eine POST-Anfrage debuggen, wenn sie nicht wie erwartet funktioniert?
Um eine POST-Anfrage zu debuggen, überprüfen Sie Folgendes:
- Statuscode: Stellen Sie sicher, dass der Server mit dem erwarteten Statuscode antwortet (z. B. 200 für Erfolg).
- Antwortinhalt: Sehen Sie sich den Antwortinhalt an, um weitere Details darüber zu erhalten, was schief gelaufen ist.
- Header: Überprüfen Sie die Anforderungsheader (insbesondere
Content-Type
und Autorisierungstoken) noch einmal. - Datenformat: Überprüfen Sie, ob die von Ihnen gesendeten JSON-Daten wohlgeformt sind.
9. Was sind häufige Fehler beim Senden von JSON-Daten mit Python Requests?
- Ungültiges JSON: Wenn das JSON fehlerhaft ist, erhalten Sie einen Fehler wie
ValueError: Expecting value
. - Falscher Inhaltstyp: Stellen Sie sicher, dass Sie
Content-Type: application/json
in den Headern festlegen, wenn Sie JSON-Daten senden. - Verbindungsfehler: Wenn die URL oder der Server nicht erreichbar ist, tritt ein
requests.exceptions.ConnectionError
auf.
```