cURL ist ein häufig verwendetes Befehlszeilentool für HTTP-Anforderungen. In diesem Tutorial werfen wir einen Blick auf HTTPie, ein Befehlszeilenprogramm, mit dem Sie HTTP-Anforderungen auf benutzerfreundliche Weise ausführen können. HTTPie verwendet Befehle mit einer einfachen und natürlichen Syntax und zeigt die Ausgabe auf ansehnliche Weise an.
Aus den offiziellen Dokumenten:
HTTPie (ausgesprochen Aitch-Tee-Tee-Pie) ist ein Befehlszeilen-HTTP-Client. Ihr Ziel ist es, die Interaktion von CLI mit Web-Services so menschlich wie möglich zu gestalten. Es bietet eine einfachehttp
Befehl, der das Senden beliebiger HTTP-Anforderungen mit einer einfachen und natürlichen Syntax ermöglicht und farbige Ausgaben anzeigt. HTTPie kann zum Testen, Debuggen und allgemein zur Interaktion mit HTTP-Servern verwendet werden.
Um mit HTTPie auf einem Ubuntu-Computer zu beginnen, müssen Sie das Paket mit apt-get installieren.
sudo apt-get install httpie
Nach der Installation sollten Sie HTTPie auf Ihrem System haben. Versuchen Sie, eine GET-Anfrage an eine Website zu senden, die HTTPie verwendet:
http www.tutsplus.com
Die obige Abfrage gibt die folgende Antwort:
Es sieht so aus, als ob HTTPie auf Ihrem System installiert ist und funktioniert. Wenn Sie genau hinschauen, zeigt die farbige Ausgabe des obigen Befehls, dass die URL dauerhaft zu https://tutsplus.com verschoben wurde. Um eine Abfrage der GET-Anforderung für tutsplus durchzuführen, ändern Sie die Abfrage:
http https://tutsplus.com
Die obige Abfrage würde die HTML-Ausgabe der GET-Anforderung unter der URL https://tutsplus.com zurückgeben.
Wie aus der obigen Abfrage hervorgeht, die einzige Information HTTPie
eine Anfrage durchführen muss, ist die URL.
Bevor wir uns eingehend mit HTTPie-Befehlen beschäftigen, werden wir uns die grundlegenden Anforderungen mit HTTPie ansehen. Wir verwenden den Json-Server, um einen Dummy-Server für Anfragen einzurichten. Um mit json-server zu beginnen, installieren Sie den Server mit npm.
npm install -g json-server
Erstellen Sie eine Datei mit dem Namen index.js
Dadurch werden einige zufällige Daten für unseren Dummy-Server erstellt.
// index.js module.exports = function () var data = users: [] // Erstellen Sie 5 Benutzer für (var i = 0; i < 5; i++) data.users.push( id: i, name: 'user' + i ) return data
Führen Sie den Json-Server mit der index.js
Datei.
json-server index.js
Jetzt sollte der Server unter http: // localhost: 3000 / betriebsbereit sein..
Wenn standardmäßig eine URL an HTTPie übergeben wird, wird davon ausgegangen, dass der Anfragetyp GET ist, und er führt die entsprechende Aktion aus. Hier ist ein Beispiel von a ERHALTEN
anfordern:
http http: // localhost: 3000 / benutzer
Die obige Anforderung zeigt die folgende Ausgabe an:
HTTP / 1.1 200 OK Access-Control-Allow-Credentials: true Cache-Control: kein Cache Verbindung: keep-alive Inhaltslänge: 212 Content-Type: application / json; charset = utf-8 Datum: Di, 18 Oct 2016 03:40:15 GMT ETag: W / "d4-4 + 4 + bS4GA0 + D / tDXlF8voQ" Läuft ab: -1 Pragma: no-cache Variieren: Herkunft, Akzeptieren X-Content-Type-Optionen kodieren: nosniff X-Powered-By: Express ["id": 0, "name": "user0", "id": 1, "name": "user1", "id": 2, "name": "user2", "id": 3, "name": "user3", "id": 4, "name": "user4"]
Um eine POST-Anforderung mit HTTPie auszuführen, müssen Sie das POST-Schlüsselwort zusammen mit den Daten hinzufügen, die an die URL gesendet werden sollen. Hier ist ein Beispiel:
http POST http: // localhost: 3000 / Benutzer-ID = 007 Name = RoyAgasthyan
Der Befehl zeigt die folgende Ausgabe auf dem Bildschirm des Terminals an:
HTTP / 1.1 201 Erstellt Access-Control-Allow-Credentials: true Cache-Control: kein Cache Verbindung: keep-alive Content-Length: 43 Content-Type: application / json; charset = utf-8 Datum: Di, 18 Oct 2016 03:46:22 GMT ETag: W / "2b-mpj // lkYJiGiWBB42OLoKA" Verfällt: -1 Pragma: no-cache Variieren: Herkunft, X-HTTP-Methode-Override , X-Content-Type-Optionen mit Akzept-Kodierung: nosniff X-Powered-By: Express "id": "007", "name": "RoyAgasthyan"
Versuchen Sie, eine GET-Anfrage mit HTTPie auszuführen, und Sie sollten die neu veröffentlichten Daten in der Antwort sehen.
Das Senden eines Formulars ist eine weitere Anforderung, die üblicherweise von einem Benutzer ausgeführt wird. Mit HTTPie wird es wesentlich einfacher, ein Formular über eine URL zu senden, indem Sie die Option bilden
Option wie gezeigt:
http --form POST www.yourformposturl.com name = "Roy"
Wenn der obige Befehl ausgeführt wird, wird die Inhaltstyp
wird automatisch auf gesetzt application / x-www-form-urlencoded; Zeichensatz = utf-8
, Sie müssen es also nicht explizit setzen.
Wie Sie vielleicht schon in unserem früheren Beispiel bemerkt haben, verarbeitet HTTPie standardmäßig keine HTTP-Weiterleitungen. Als wir versuchten, eine GET-Anfrage auf www.tutsplus.com zu erstellen, wurde eine Nachricht angezeigt, aus der hervorgeht, dass die URL verschoben wurde. Wenn HTTPie mit Umleitungen umgehen soll, müssen Sie eine Option hinzufügen Folgen
zum Anforderungsbefehl.
http - folge www.tutsplus.com
Die obige HTTPie-Abfrage würde ggf. HTTP-Umleitungen verarbeiten.
HTTPie bietet eine Funktion zum Herunterladen von Dateien von einem Server, ähnlich dem Befehl wget. Um die Datei herunterzuladen, müssen Sie ein angeben herunterladen
Option zusammen mit der URL.
http - download http://www.tutorialspoint.com/python/python_tutorial.pdf
Der obige Befehl würde eine Antwort wie folgt anzeigen:
OK / Akzeptierte Bereiche: Bytes Access-Control-Allow-Header: X-Requested-With-Access-Control-Allow-Origin: * Inhaltslänge: 3945951 Inhaltstyp: application / pdf Datum: Di, 18 Okt 2016 04:01:43 GMT Tag: "3c35df-52fe21b892a6f" Letzte Änderung: Do, 07 Apr 2016 09:57:34 GMT Server: ECS (pnq / AF9A) X-Cache: HIT Herunterladen von 3.76 MB in "python_tutorial.pdf -1 "| 28,03% 1,05 MB 63,85 kB / s 0:00:43 ETA
Für den Zugriff auf eine Webdienst-URL ist eine Authentifizierung erforderlich. HTTPie unterstützt die meisten der häufig verwendeten Authentifizierungsmechanismen. Standardmäßig unterstützt HTTPie die Basisauthentifizierung. Sie müssen also nur den Benutzernamen und das Kennwort an die Anforderung mit übergeben -ein
Möglichkeit.
http -a Benutzername: Passwort www.mywebservice.com
Um eine Digest-Authentifizierung zu verwenden, müssen Sie den Namen des Authentifizierungsmechanismus mithilfe von angeben -EIN
Möglichkeit.
http-ein Digest -a Benutzername: Passwort www.myservice.com
Wenn wir eine Anfrage an eine URL senden, werden alle Daten zusammen mit den Header-Informationen im Terminal angezeigt. HTTP bietet eine Option zum Anpassen der Ausgabeantwort. Sie können die einzelnen Kopf- und Textinformationen drucken, indem Sie die Option angeben --Header
und --Karosserie
Option zusammen mit der Anfrage.
http https://www.tutsplus.com --header
Der obige Befehl würde die Kopfinformationen wie gezeigt drucken:
HTTP / 1.1 301 Dauerhaft verschoben CF-RAY: 2f6669f88fc43548-LHR Verbindung: keep-alive Datum: So, 23 Oct 2016 16:02:32 GMT Ort: https://tutsplus.com/ Server: cloudflare-nginx Set-Cookie: __cfduid = dfea480f2567e7c463e66999adfdc73d71477238552; verfällt = Mo, 23-Oct-17 16:02:32 GMT; Pfad = /; domain = .tutsplus.com; HttpOnly Transfer-Encoding: chunked
Nun, wenn Sie die HTTP-Anfrage zusammen mit der versuchen --Karosserie
Option sollte nur der Hauptteil gedruckt werden.
http www.google.com --body
Der obige Befehl würde die folgende Ausgabe drucken:
302 Umgezogen 302 Umgezogen
Das Dokument wurde hierher verschoben.
Während der Verwendung von HTTPie ist jede Anforderung unabhängig von anderen Anforderungen. Wir können Sitzungen beibehalten, falls wir die Sitzung für andere HTTP-Anforderungen beibehalten möchten. Um eine Sitzung aufrechtzuerhalten, müssen Sie lediglich eine benannte Sitzung erstellen (siehe Abbildung):
http --session = roy -a roy: mypass www.myservice.com
Der obige Befehl würde eine aufgerufene Sitzung erstellen Roy
die für andere Anforderungen verwendet werden kann, indem der Sitzungsname verwendet wird. Hier ist ein Beispiel, das die Sitzung verwendet Roy
:
http - session = roy www.myservice.com
Es ist möglicherweise schwierig, sich alle Befehle im Zusammenhang mit HTTPie zu merken. Das http-Eingabeaufforderung
Das Toolkit bietet eine automatische Vervollständigungsfunktion, die zusammen mit HTTPie verwendet werden kann. Um mit anzufangen http-Eingabeaufforderung
, installiere es mit Pip
:
sudo pip http-Eingabeaufforderung installieren
Um eine Sitzung zu starten, rufen Sie auf http-Eingabeaufforderung
mit der Server-URL, die wir abfragen. Starten Sie das neu Json-Server
dass wir das installiert und aufgerufen haben http-Eingabeaufforderung
wie gezeigt:
http-Eingabeaufforderung http: // localhost: 3000 / users
Geben Sie einige Buchstaben HTTP ein und die automatische Vervollständigung sollte angezeigt werden.
Eintippen httpie
und es sollte die URL anzeigen, die wir abfragen.
http http: // localhost: 3000 / benutzer
Alle HTTPie-Anforderungsbefehle sollten im System funktionieren http-Eingabeaufforderung
. Versuchen Sie, GET einzugeben, und es sollte in der Autovervollständigung erscheinen. Bei der Eingabe des GET-Befehls sollte die folgende Antwort angezeigt werden.
In diesem Tutorial haben wir gesehen, wie Sie damit beginnen HTTPie
, eine menschenfreundlichere CURL-Alternative. Wir haben gesehen, wie grundlegende Anforderungsoperationen wie GET und POST mit HTTPie und einigen anderen Funktionen ausgeführt werden. Für ausführliche Informationen zur Verwendung HTTPie
, Schauen Sie sich die offizielle Dokumentation an. Lesen Sie auch die offizielle Dokumentation für http-Eingabeaufforderung
. Teilen Sie uns Ihre Meinung in den Kommentaren unten mit.