httpie

Wie verwendet man HTTPie im Jahr 2024?

Stefan
12 Min Read
httpie

HTTPie ist ein Befehlszeilentool, das die Interaktion mit HTTP-Servern und APIs vereinfacht. Erfahren Sie, wie Sie HTTPie im Jahr 2024 verwenden, um Anfragen zu stellen, Dateien hochzuladen, Sitzungen zu verwalten und mehr.

HTTPie ist ein Befehlszeilentool, mit dem Sie auf benutzerfreundliche Weise mit HTTP-Servern interagieren können. Es hat eine einfache und ausdrucksstarke Syntax, unterstützt JSON- und Formulardaten, kümmert sich um Authentifizierung und Header und zeigt farbige und formatierte Ausgaben an. Es verfügt außerdem über einige erweiterte Funktionen wie Sitzungen, Plugins und Proxys, die es noch leistungsfähiger und vielseitiger machen.

In diesem Blogbeitrag zeige ich Ihnen, wie Sie HTTPie installieren und verwenden und wie Sie damit Ihre APIs einfach und effizient testen und debuggen können. Ich werde auch einige Tipps und Tricks weitergeben, die ich dabei gelernt habe, und einige Ressourcen, die Sie nutzen können, um mehr über HTTPie zu erfahren.

So installieren Sie HTTPie

Der erste Schritt zur Verwendung von HTTPie besteht darin, es auf Ihrem System zu installieren. HTTPie ist in Python geschrieben und Sie können es mit pip, dem Python-Paketmanager, installieren. Öffnen Sie dazu Ihr Terminal und führen Sie den folgenden Befehl aus:

Dadurch wird die neueste Version von HTTPie auf Ihrem System installiert und eine vorhandene Version wird aktualisiert, falls vorhanden. Sie können die Version von HTTPie überprüfen, indem Sie Folgendes ausführen:

Sie sollten ungefähr Folgendes sehen:

Wenn Sie diese Ausgabe sehen, herzlichen Glückwunsch! Sie haben HTTPie erfolgreich installiert und können es verwenden.

So senden Sie HTTP-Anfragen mit HTTPie

Die grundlegende Syntax von HTTPie lautet:

Wo:

  • flagssind optionale Argumente, die das Verhalten von HTTPie ändern, beispielsweise -vfür den ausführlichen Modus, -hfür Hilfe oder -ffür Follow-Weiterleitungen.
  • METHODist die zu verwendende HTTP-Methode, z. B. GET, POST, PUT, PATCH, DELETE usw. Wenn es weggelassen wird, verwendet HTTPie standardmäßig GET.
  • URList die URL des HTTP-Servers, mit dem interagiert werden soll, z. B. https://example.com/api/users.
  • ITEMist ein optionales Schlüssel-Wert-Paar, das die Anforderungsdaten angibt, z. B. name=Johnfür Formulardaten oder name:=Johnfür JSON-Daten. Sie können auch verwenden ITEM, um Header anzugeben, z. B. User-Agent:HTTPie.

Um beispielsweise eine GET-Anfrage an zu senden https://example.com/api/users, können Sie einfach Folgendes ausführen:

Dadurch wird eine GET-Anfrage an die URL gesendet und die Antwort farblich markiert und formatiert angezeigt. Sie sehen dann etwa Folgendes:

Wie Sie sehen, zeigt HTTPie die Statuszeile, Header und den Text der Antwort klar und lesbar an. Es verwendet auch Farben, um verschiedene Teile der Antwort hervorzuheben, z. B. Grün für Header, Blau für JSON-Schlüssel und Gelb für JSON-Werte.

Sie können mit HTTPie auch andere HTTP-Methoden senden , z. B. POST, PUT, PATCH oder DELETE, indem Sie die Methode vor der URL angeben. Um beispielsweise eine POST-Anforderung mit https://example.com/api/userseinigen JSON-Daten zu senden , können Sie Folgendes ausführen:

Dadurch wird eine POST-Anfrage an die URL gesendet, mit den folgenden JSON-Daten im Anfragetext:

Sie können den :=Operator auch verwenden, um JSON-Werte anzugeben, z. B. name:=”John”oder age:=25. Dies ist nützlich, wenn Sie keine Zeichenfolgenwerte senden möchten, z. B. Zahlen, Boolesche Werte, Arrays oder Objekte.

HTTPie zeigt die Antwort auf die gleiche Weise wie zuvor an, jedoch mit einem anderen Statuscode und Text. Sie sehen ungefähr Folgendes:

Wie Sie sehen, zeigt HTTPie den Antwortstatuscode als 201 Erstellt an, was bedeutet, dass auf dem Server eine neue Ressource erstellt wurde. Außerdem wird der Location-Header angezeigt, der auf die URL der neu erstellten Ressource verweist. Der Antworttext enthält die JSON-Darstellung des neuen Benutzers.

Sie können dieselbe Syntax verwenden, um andere HTTP-Methoden wie PUT, PATCH oder DELETE zu senden, indem Sie den Methodennamen ersetzen. Um beispielsweise den Namen des Benutzers mit der ID 4 zu aktualisieren, können Sie Folgendes ausführen:

Dadurch wird eine PATCH-Anfrage an die URL gesendet, mit den folgenden JSON-Daten im Anfragetext:

HTTPie zeigt die Antwort auf die gleiche Weise wie zuvor an, jedoch mit einem anderen Statuscode und Text. Sie sehen ungefähr Folgendes:

Wie Sie sehen, zeigt HTTPie den Antwortstatuscode als 200 OK an, was bedeutet, dass die Ressource erfolgreich aktualisiert wurde. Der Antworttext enthält die JSON-Darstellung des aktualisierten Benutzers.

Sie können HTTPie auch zum Senden von Formulardaten verwenden, indem Sie den =Operator anstelle des :=Operators verwenden. Um beispielsweise eine POST-Anforderung https://example.com/api/loginmit einigen Formulardaten zu senden, können Sie Folgendes ausführen:

Dadurch wird eine POST-Anfrage an die URL gesendet, mit den folgenden Formulardaten im Anfragetext:

HTTPie zeigt die Antwort auf die gleiche Weise wie zuvor an, jedoch mit einem anderen Inhaltstyp und Textkörper. Sie sehen etwa Folgendes:

Wie Sie sehen, zeigt HTTPie den Antwortinhaltstyp als Text/Plain an, was bedeutet, dass der Antworttext einfacher Text ist. Der Antworttext enthält eine einfache Nachricht zur Bestätigung der Anmeldung.

So überprüfen Sie den Antworttext und die Header mit HTTPie

Eine der großartigen Funktionen von HTTPie besteht darin, dass es den Antworttext und die Header je nach Inhaltstyp automatisch analysiert und formatiert. Wenn die Antwort beispielsweise JSON ist, zeigt HTTPie sie auf hübsche und farbige Weise an, wie wir zuvor gesehen haben. Wenn die Antwort HTML ist, zeigt HTTPie sie als Rohtext an, jedoch mit Syntaxhervorhebung. Wenn die Antwort ein Bild ist, zeigt HTTPie es als Binärdaten an, jedoch mit einem Hinweis auf Bildtyp und -größe.

Sie können auch einige Flags verwenden, um zu ändern, wie HTTPie die Antwort anzeigt. Sie können beispielsweise das Flag -boder verwenden –body, um nur den Antworttext ohne die Header anzuzeigen. Sie können das Flag -hoder verwenden –headers, um nur die Antwortheader ohne den Text anzuzeigen. Sie können das Flag -poder verwenden –print, um anzugeben, welche Teile der Anfrage und Antwort gedruckt werden sollen. Verwenden Sie dazu die folgenden Zeichen:

  • H: Anforderungsheader
  • B: Anforderungstext
  • h: Antwortheader
  • b: Antworttext

Um beispielsweise nur die Anforderungsheader und den Antworttext anzuzeigen, können Sie Folgendes ausführen:

Die Anzeige ähnelt der folgenden:

Wie Sie sehen, zeigt HTTPie die Anforderungsheader und den Antworttext an, jedoch nicht die Antwortheader oder den Anforderungstext.

Sie können auch das Flag -joder verwenden –json, um HTTPie zu zwingen, die Antwort als JSON zu behandeln, selbst wenn der Inhaltstyp nicht application/json ist. Dies ist nützlich, wenn der Server nicht den richtigen Inhaltstyp sendet oder wenn Sie eine Nicht-JSON-Antwort als JSON analysieren möchten. Um beispielsweise eine Nur-Text-Antwort als JSON zu analysieren, können Sie Folgendes ausführen:

Die Anzeige ähnelt der folgenden:

Wie Sie sehen, analysiert HTTPie die Klartextantwort als JSON und zeigt sie auf hübsche und farbige Weise an.

Sie können auch die Flags -ooder verwenden –output, um den Antworttext in einer Datei zu speichern, anstatt ihn auf dem Terminal anzuzeigen. Dies ist nützlich, wenn Sie eine Datei vom Server herunterladen möchten, z. B. ein Bild, eine PDF- oder ZIP-Datei. Um beispielsweise ein Bild von herunterzuladen https://example.com/api/image, können Sie Folgendes ausführen:

Dadurch wird das Bild in einer Datei mit dem Namen image.jpgin Ihrem aktuellen Verzeichnis gespeichert. Sie können auch das Flag -doder verwenden –download, um automatisch einen Dateinamen basierend auf der URL und dem Inhaltstyp zu generieren. Um beispielsweise dasselbe Bild herunterzuladen, können Sie Folgendes ausführen:

Dadurch wird das Bild in einer Datei mit dem Namen image-20240208-054325.jpgin Ihrem aktuellen Verzeichnis gespeichert, wobei Datum und Uhrzeit als Suffix verwendet werden.

Wie Sie sehen, bietet HTTPie Ihnen zahlreiche Optionen, um den Antworttext und die Header zu überprüfen und die Antwort in einer Datei zu speichern. Sie können diese Optionen verwenden, um Ihre APIs zu testen und zu debuggen sowie um Inhalt und Format der Antwort zu überprüfen.

Einschränkung von HTTPie

HTTPie ist ein leistungsstarkes und benutzerfreundliches Befehlszeilentool für die Interaktion mit HTTP-Servern und APIs. Es weist jedoch auch einige Einschränkungen auf, wie zum Beispiel:

  • Es unterstützt keine GraphQL-, WebSocket- oder gRPC-Protokolle, die in der modernen Webentwicklung immer beliebter werden.
  • Es verfügt weder über eine grafische Benutzeroberfläche (GUI) noch über eine Webversion, was manche Benutzer, die mit dem Terminal nicht vertraut sind, möglicherweise bevorzugen.
  • Es verfügt nicht über integrierte Funktionen für API-Design, Dokumentation, Mocking oder Tests, die für die API-Entwicklung und -Zusammenarbeit unerlässlich sind.

Warum sollten Sie Apidog verwenden?

Apidog ist eine integrierte Plattform für API-Design, Debugging, Entwicklung, Mock und Testen. Es vereint die Funktionen von Postman, Swagger, Mock und JMeter in einem Tool. Sie können Apidog verwenden, wenn Sie Folgendes suchen:

  • Eine umfassende und kollaborative Lösung für den gesamten API-Lebenszyklus, vom Design bis zum Testen, Mocking und zur Dokumentation.
  • Ein Tool, das mehrere Protokolle unterstützt, wie HTTP, GraphQL, WebSocket und gRPC.
  • Ein Tool, das sowohl als Desktop-App als auch als Webversion sowie über eine Befehlszeilenschnittstelle (CLI) verfügt.
  • Ein Tool, das API-Design-First implementiert und die mühelose Synchronisierung von API, Spezifikationen und Änderungen über den gesamten API-Lebenszyklus hinweg ermöglicht.

Schritt 1. Öffnen Sie Apidog und klicken Sie auf „Neue API“, um eine neue API zum Testen zu erstellen.

Schritt 2. Wählen Sie die für die API zu verwendende HTTP-Methode aus und geben Sie die Endpunkt-URL ein.

Schritt 3. Geben Sie die erforderlichen Informationen wie Parameter gemäß der API-Spezifikation ein und klicken Sie auf die Schaltfläche „Senden“, um die API-Anfrage zu senden und die Antwort zu erhalten.

Mehr lesen: LinkedIn API: Funktionen, Preise, Authentifizierungen und Setups

Fazit

HTTPie ist ein leistungsstarkes und benutzerfreundliches Tool, mit dem Sie von Ihrem Terminal aus mit HTTP-Servern und APIs kommunizieren können. Es verfügt über viele Funktionen und Optionen, mit denen Sie Ihre Anfragen und Antworten ganz einfach anpassen und formatieren können. Sie können HTTPie zum Testen, Debuggen und Erkunden von APIs sowie zum Automatisieren von Aufgaben und Workflows verwenden.

Wenn Sie eine stärker integrierte Plattform für API-Design, Debugging, Entwicklung, Mocking und Testen verwenden möchten, können Sie auch Apidog ausprobieren. Apidog ist ein Tool, das den gesamten API-Lebenszyklus vom Design bis zum Testen, Mocking und zur Dokumentation verbindet.