Das Befehlszeilentool curl ist ein perfekter Assistent, wenn Sie mit HTTP-Code arbeiten. Testen Sie Anforderungen, erkunden Sie Datenformate und vieles mehr!

Das Hypertext Transfer Protocol (HTTP) ist das Rückgrat der Kommunikation über das Internet und ermöglicht die Übertragung von Daten zwischen Servern und Clients. Die Interaktion mit HTTP-Endpunkten kann jedoch eine Herausforderung darstellen, insbesondere für Anfänger.

Glücklicherweise bietet curl, ein Befehlszeilentool, eine einfache und effiziente Möglichkeit, HTTP-Anforderungen zu senden und zu empfangen. Hier erfahren Sie, wie Sie curl verwenden, um grundlegende POST-, GET-, DELETE- und PUT-HTTP-Anfragen zu stellen.

Curl installieren

Standardmäßig wird curl auf den wichtigsten Betriebssystemen wie macOS, Linux und Unix installiert.

Sie können bestätigen, dass Sie curl installiert haben, indem Sie den folgenden Befehl ausführen:

kräuseln

Der obige Befehl sollte „try 'curl --help' or 'curl --manual' for more information“ auf Ihrem Terminal ausgeben.

instagram viewer

Wenn curl nicht auf Ihrem Betriebssystem installiert ist, können Sie es von herunterladen und installieren die Curl-Download-Seite.

Erstellen einer HTTP-GET-Anforderung

Eine HTTP-GET-Anforderung ist eine Methode zum Anfordern von Daten ein Webserver. Sie können diese Anforderungen verwenden, um eine bestimmte Ressource wie eine Webseite, ein Bild oder ein Video abzurufen.

Sie können eine GET-Anfrage mit curl im folgenden Format stellen:

curl -X ERHALTEN 

Ersetzen mit der URL der Ressource, die Sie abrufen möchten.

Zum Beispiel:

curl -X ERHALTEN https://example.com/todos/1

Wenn Sie den obigen Befehl ausführen, wird eine HTTP-GET-Anforderung an die URL gesendet https://example.com/todos/1. Der -X ERHALTEN Option gibt an, dass die HTTP-Methode GET ist. Wenn der Befehl ausgeführt wird, sendet curl eine GET-Anforderung an den in der URL angegebenen Server und wartet auf die Antwort des Servers.

Wenn der Server mit antwortet ein erfolgreicher Statuscode, kräuseln zeigt den Antworttext im Terminal an, was in diesem Fall die JSON-Daten zu einem Aufgabenelement mit der ID 1 wären.

Alternativ können Sie eine GET-Anfrage stellen, ohne die anzugeben -X -Flag, da curl standardmäßig eine GET-Anforderung durchführt, wenn Sie keine Anforderungsmethode mit angeben -X Flagge.

Zum Beispiel:

kräuseln https://example.com/todos/1

Wenn Sie den obigen Befehl ausführen, wird die gleiche Antwort wie beim vorherigen Befehl mit dem „-X ERHALTEN" Flagge.

Erstellen einer HTTP-POST-Anforderung

Eine HTTP-POST-Anforderung ist eine Methode zum Speichern von Daten auf einem Webserver. Im Gegensatz zu einer GET-Anforderung, die Daten als Teil der URL sendet, sendet eine POST-Anforderung Daten im Nachrichtentext der Anforderung. Dadurch werden POST-Anforderungen für die Übertragung vertraulicher Informationen sicherer.

Sie können eine POST-Anfrage mit curl im folgenden Format stellen:

curl -X POST -d 

Zum Beispiel:

curl -X POST -d 'name=jack' -d '[email protected]' \
 https://example.com/users

Der obige Befehl sendet eine POST-Anforderung an https://example.com/users mit den von der angegebenen Daten -D Flag als Payload.

Der -D Flag gibt die zu sendenden Daten an. In diesem Fall wurden zwei Datenparameter angegeben: name=jack und [email protected].

Wenn Sie die verwenden -D mehrfach in einem Befehl markieren, können Sie die Felder mit dem &-Symbol zusammenführen.

Zum Beispiel:

curl -d "name=jack&[email protected]" https://example.com/api/users

Einige Daten, die Sie möglicherweise in einer POST-Anforderung zu senden versuchen, lassen sich in Ihrem Terminal möglicherweise nur schwer in eine einzelne Zeichenfolge einfügen. In solchen Fällen ist es möglicherweise ideal, die Daten mit curl aus einer Datei zu lesen und zu posten.

Um Daten aus einer Datei in einer POST-Anfrage als Payload mit curl zu senden, verwenden Sie die @ sofort nach dem unterschreiben -D flag, gefolgt vom Dateipfad zu der Datei, die curl in der Anfrage senden soll.

Zum Beispiel:

curl -X POST -d @users.txt https://example.com/api/users

Festlegen des Inhaltstyps

Verwendung der -D Flag setzt den Content-Type-Header automatisch auf application/x-www-form-urlencoded. Sie können jedoch manuell den passenden Inhaltstyp für Ihre Anfrage angeben, indem Sie die verwenden -H oder --Header Flag gefolgt vom gewünschten Inhaltstyp.

Zum Beispiel:

curl -H "Inhaltstyp: application/json" \
 -d '{"name": "Jack", "email": "[email protected]"}' \
 https://example.com/api/users

Im obigen Befehl wird die -H Flag gibt den Content-Type-Header als an Inhaltstyp: application/json.

Sie können ersetzen Anwendung/json mit jedem anderen gültigen MIME-Typ oder Inhaltstyp, der für die Daten geeignet ist, die Sie im Anfragetext senden. Wenn Sie beispielsweise Binärdaten wie eine Bild- oder Audiodatei hochladen, sollten Sie den Inhaltstyp auf festlegen multipart/form-data.

Auf diese Weise können Sie das erwartete Format der gesendeten Daten angeben, was bei der Interaktion mit APIs oder Webdiensten wichtig sein kann, die bestimmte Inhaltstypen für eine ordnungsgemäße Verarbeitung erfordern.

Erstellen einer HTTP-PUT-Anforderung

Eine HTTP-PUT-Anforderung ist eine Methode zum Aktualisieren einer vorhandenen Ressource auf einem Webserver oder zum Erstellen einer Ressource, wenn die Ressource nicht vorhanden ist. Diese Methode unterscheidet sich von der POST-Methode darin, dass sie idempotent ist. Das bedeutet, dass der Aufruf der PUT-Methode ein- oder mehrmals hintereinander die gleiche Wirkung auf dem Server hat.

Sie können eine PUT-Anfrage mit curl im folgenden Format stellen:

curl -X PUT -H "Inhaltstyp: Anwendung/json" \
 -d '{"name": "Jack Bauer", "email": "[email protected]"}' \
 https://example.com/api/users/4

Der obige Befehl sendet eine PUT-Anforderung im JSON-Format an den in der obigen URL angegebenen Webserver und aktualisiert die angegebene Ressource. Wenn die angegebene Ressource nicht vorhanden ist, wird sie auf dem Webserver erstellt.

Erstellen einer HTTP-DELETE-Anforderung

Eine HTTP-DELETE-Anforderung ist eine Methode zum Löschen einer bestimmten Ressource von einem Webserver. Ähnlich wie PUT-Anforderungen sind DELETE-Anforderungen idempotent. Das mehrfache Senden derselben DELETE-Anfrage an dieselbe Ressource führt auf dem Server zum selben Ergebnis.

Sie können mit curl eine DELETE-Anforderung stellen, indem Sie den folgenden Befehl ausführen:

curl -X LÖSCHEN http://example.com/api/users/3

Der obige Befehl sendet eine DELETE-Anforderung an den in der obigen URL angegebenen Webserver und löscht die angegebene Ressource.

Löschanforderungen entfernen die angegebene Ressource dauerhaft vom Server. Daher benötigt ein Webserver, der DELETE unterstützt, normalerweise eine Form von Authentifizierung oder Autorisierung bevor Sie diese Anfrage stellen können.

So stellen Sie eine DELETE-Anforderung mit einem Autorisierungsheader:

curl -X DELETE -H "Autorisierung: Bearer my_access_token" \
 https://example.com/api/users/3

Der obige Befehl stellt die Authentifizierungsinformationen im Anforderungsheader unter Verwendung der Bearer-Authentifizierungsmethode mit der bereit -H Flagge. Autorisierung: Träger my_access_token ist der Header-Wert. my_access_token ist ein Platzhalter für Ihren tatsächlichen Zugriffstokenwert.

Andere Möglichkeiten, wie Sie HTTP-Anforderungen stellen können

Abgesehen von curl gibt es je nach Kontext der Anfrage mehrere Möglichkeiten, HTTP-Anforderungen zu stellen. Zu den gängigsten Methoden gehört die Verwendung eines Webbrowsers wie Chrome, eines GUI-Tools wie Postman oder eines API-Clients.

Jede dieser Optionen hat ihre Vorteile und Nachteile. Letztendlich hängt die Wahl des Tools von den Anforderungen Ihrer Aufgabenstellung ab.