HTTPie, et menneskelig vennlig cURL-lignende verktøy

cURL er et vanlig kommandolinjeverktøy for å lage HTTP-forespørsler. I denne veiledningen tar vi en titt på HTTPie, et kommandolinjeværktøy for å lage HTTP-forespørsler på en menneskelig måte. HTTPie bruker kommandoer med enkle og naturlige syntaks og viser utgangen på en presentabel måte. 

Fra de offisielle dokumentene:

HTTPie (uttalt aitch-tee-tee-pai) er en kommandolinje HTTP-klient. Målet er å gjøre CLI-samhandling med webtjenester så menneskevennlig som mulig. Det gir en enkel http kommando som gjør det mulig å sende vilkårlig HTTP-forespørsler ved hjelp av en enkel og naturlig syntaks, og viser farget utdata. HTTPie kan brukes til testing, feilsøking og generelt interaksjon med HTTP-servere.

Starter

For å komme i gang med HTTPie på en Ubuntu-maskin, må du installere pakken ved hjelp av apt-get.

sudo apt-get install httpie

Når den er installert, bør du ha HTTPie på systemet. Prøv å lage en GET-forespørsel til et hvilket som helst nettsted ved å bruke HTTPie:

http www.tutsplus.com

Ovennevnte spørring gir følgende svar:

Det ser ut som om HTTPie er installert og fungerer på systemet ditt. Hvis du ser nøye ut, viser den fargede utgangen av kommandoen ovenfor at nettadressen er flyttet permanent til https://tutsplus.com. Derfor, for å gjøre en forespørsel om GET-forespørsel på tutsplus, må du endre spørringen:

http https://tutsplus.com

Ovennevnte spørring vil returnere HTML-utgangen av GET-forespørselen på URL https://tutsplus.com. 

Som sett fra ovennevnte spørring, er den eneste informasjonen HTTPie trenger å utføre en forespørsel er nettadressen.

Utføre grunnleggende forespørsler ved hjelp av HTTPie

Før du dykker dypt inn i HTTPie-kommandoer, ser vi på hvordan du utfører de grunnleggende forespørsler ved hjelp av HTTPie. Vi bruker Json-serveren til å få en dummy-server oppe for å stille forespørsler. For å komme i gang med json-server, installer serveren ved hjelp av npm.

npm installer -g json-server

Opprett en fil som heter index.js som vil skape noen tilfeldige data for vår dummy server.

// index.js module.exports = function () var data = users: [] // Opprett 5 brukere for (var i = 0; i < 5; i++)  data.users.push( id: i, name: 'user' + i )  return data 

Kjør json-serveren ved hjelp av index.js fil.

json-server index.js

Nå skal serveren være oppe på http: // localhost: 3000 /.

GET-forespørsel ved hjelp av HTTPie

Som standard hvis en URL er gitt til HTTPie, antas det at forespørselstypen er GET og utfører tilsvarende. Her er et eksempel på a be om:

http http: // localhost: 3000 / users

Ovennevnte forespørsel viser følgende utgang:

HTTP / 1.1 200 OK Tilgangskontroll-Tillat-legitimasjon: Sann Cache-Control: No-cache Tilkobling: Fortsatt Levende Innholdslengde: 212 Innholdstype: Application / json; Charset = utf-8 Dato: Tue, 18 Okt 2016 03:40:15 GMT ETag: W / "d4-4 + 4 + bS4GA0 + D / tDXlF8voQ" Utløper: -1 Pragma: no-cache Varighet: Opprinnelse, Godta- Koding av X-Content-Type-Alternativer: Nosniff X-Powered-By: Express ["id": 0, "navn": "user0", "id": 1, "navn": "user1", "id": 2, "navn": "user2", "id": 3, "navn": "user3", "id": 4, "navn": "user4"] 

POST-forespørsel ved hjelp av HTTPie

For å utføre en POST-forespørsel ved å bruke HTTPie, må vi legge til POST-søkeordet sammen med dataene som skal legges ut på nettadressen. Her er et eksempel:

http POST http: // localhost: 3000 / users id = 007 navn = RoyAgasthyan

Kommandoen viser følgende utgang på terminalskjermbildet:

HTTP / 1.1 201 Opprett Access-Control-Tillat-legitimasjon: Sann Cache-Control: No-cache Tilkobling: Fortsatt Levende Innholdslengde: 43 Innholdstype: Application / json; Charset = utf-8 Dato: Tue, 18 Okt 2016 03:46:22 GMT ETag: W / "2b-mpj // lkYJiGiWBB42OLoKA" Utløper: -1 Pragma: No-Cache Varighet: Opprinnelse, X-HTTP-Metode-Overstyring , Accept-Encoding X-Content-Type-Options: nosniff X-Powered-By: Express "id": "007", "navn": "RoyAgasthyan" 

Prøv å gjøre en GET-forespørsel ved hjelp av HTTPie, og du bør se de nylig oppførte dataene i svaret.

Sende skjemaer ved hjelp av HTTPie

Sende inn et skjema er en annen forespørsel som vanligvis utføres av en bruker. Med HTTPie blir det ganske enklere å sende inn et skjema over en URL ved å spesifisere skjema alternativ som vist:

http - form POST www.yourformposturl.com name = "Roy"

Når kommandoen ovenfor blir utført, vil Innholdstype er automatisk satt til application / x-www-skjema-urlencoded; charset = utf-8, derfor trenger du ikke å angi det eksplisitt.

Håndtering av HTTP-omadressering

Som du kanskje har lagt merke til i vårt tidligere eksempel, håndterer HTTPie som standard ikke HTTP-omdirigeringer. Da vi prøvde å gjøre en GET-forespørsel på www.tutsplus.com, viste den en melding om at nettadressen hadde blitt flyttet. Hvis du vil ha HTTPie til å håndtere omadresser, må du legge til et alternativ som heter Følg til forespørselen kommandoen.

http - følge www.tutsplus.com

Ovennevnte HTTPie-spørring vil håndtere HTTP-omdirigeringer, hvis noen.

Last ned filer ved hjelp av HTTPie

HTTPie gir en funksjon for å laste ned filer fra en server, lik wget-kommandoen. For å laste ned filen må du spesifisere en nedlasting alternativ sammen med nettadressen.

http - nedlasting http://www.tutorialspoint.com/python/python_tutorial.pdf

Kommandoen ovenfor vil vise et svar som vist nedenfor:

HTTP / 1.1 200 OK Godta-Rang: Bytes Access-Control-Tillat-Headers: X-Requested-Med Access-Control-Tillat-Origin: * Innholdslengde: 3945951 Innholdstype: Søknad / pdf Dato: Tue, 18 Okt 2016 04:01:43 GMT Etag: "3c35df-52fe21b892a6f" Sist endret: torsdag 07 april 2016 09:57:34 GMT Server: ECS (pnq / AF9A) X-Cache: HIT Nedlasting 3.76 MB til "python_tutorial.pdf -1 "| 28,03% 1,05 MB 63,85 kB / s 0:00:43 ETA

Håndtering av godkjenning

Å få tilgang til en webtjenesteadresse krever noen eller annen form for godkjenning. HTTPie støtter de fleste av de vanlige autentiseringsmekanismer. Som standard støtter HTTPie grunnleggende godkjenning, så du trenger bare å sende inn brukernavnet og passordet til forespørselen med -en alternativ. 

http -a brukernavn: passord www.mywebservice.com

Hvis du vil bruke en fordøyelsesautentisering, må du passere i godkjenningsmekanismens navn ved hjelp av -EN alternativ.

http -A digest -a brukernavn: passord www.myservice.com

Tilpasse responsskjermen

Når vi gjør en forespørsel til en URL, vises alle dataene sammen med headerinformasjonen i terminalen. HTTPie gir et alternativ til å tilpasse utgangsresponsen. Du kan skrive ut den enkelte header og kroppsinformasjon ved å spesifisere --Overskrift og --kropp alternativ sammen med forespørselen.

http https://www.tutsplus.com --header

Kommandoen ovenfor vil skrive ut topptekstinformasjonen som vist:

HTTP / 1.1 301 Flyttet permanent CF-RAY: 2f6669f88fc43548-LHR Tilkobling: Keep-alive Dato: søndag, 23 okt 2016 16:02:32 GMT Sted: https://tutsplus.com/ Server: cloudflare-nginx Set-Cookie: __cfduid = dfea480f2567e7c463e66999adfdc73d71477238552; utløper = ma, 23-okt-17 16:02:32 GMT; path = /; domene = .tutsplus.com; HttpOnly Transfer-Encoding: chunked 

Nå, hvis du prøver HTTP-forespørselen sammen med --kropp alternativ, det skal bare skrive ut kroppsdelen.

http www.google.com --body

Kommandoen ovenfor vil skrive ut følgende utgang:

   302 flyttet   

302 flyttet

Dokumentet er flyttet her.

Opprettholde økter

Mens du bruker HTTPie, er hver forespørsel uavhengig av andre forespørsler. Vi kan holde økter hvis vi vil fortsette økten for andre HTTP-forespørsler. For å opprettholde en økt, er alt vi trenger å gjøre, å opprette en navngitt økt som vist:

http - session = roy-a roy: mypass www.myservice.com

Ovennevnte kommando ville opprette en økt kalt roy som kan brukes til andre forespørsler ved å bruke øktnavnet. Her er et eksempel som bruker økten roy:

http - session = roy www.myservice.com

Automatisk fullføring ved hjelp av HTTP-spørsmål

Det kan være vanskelig å huske alle kommandoer relatert til HTTPie. De http-prompt verktøykasse gir en automatisk komplett funksjon som kan brukes sammen med HTTPie. Å komme i gang med http-prompt, installer den ved hjelp av pip:

sudo pip installere http-prompt

For å starte en økt, påkalle http-prompt med serveradressen som vi vil spørre om. Start på nytt JSON-serveren at vi installerte og påkalle http-prompt som vist:

http-prompt http: // localhost: 3000 / users

Skriv inn noen få bokstaver av HTTP, og den automatiske komplett skal vises.

Skriv inn httpie og det skal vise nettadressen vi spør.

http http: // localhost: 3000 / users

Alle kommandoer for HTTPie-forespørsler skal fungere i http-prompt. Prøv å skrive inn GET og det skal dukke opp i bilen, fullført. Ved å skrive inn GET-kommandoen, bør følgende svar vises.

Pakke det opp

I denne veiledningen så vi hvordan du kommer i gang med HTTPie, et mer menneskelig vennlig cURL-alternativ. Vi så hvordan du gjør de grunnleggende forespørselsoperasjonene som GET og POST ved hjelp av HTTPie og noen andre funksjoner. For grundig informasjon om bruk HTTPie, ta en titt på den offisielle dokumentasjonen. Sjekk også den offisielle dokumentasjonen for http-prompt. Gi oss beskjed om dine tanker i kommentarene nedenfor.