HTTPie, un instrument asemănător UU-cURL

cURL este un instrument de linie de comandă utilizat în mod obișnuit pentru efectuarea de solicitări HTTP. În acest tutorial, vom analiza HTTPie, un instrument de linie de comandă pentru a face cereri HTTP într-un mod prietenos cu oamenii. HTTPie folosește comenzi cu sintaxă simplă și naturală și afișează ieșirea într-un mod prezentabil. 

Din documentele oficiale:

HTTPie (pronunțată Aitch-tee-tee-plăcintă) este un client de linie de comandă HTTP. Scopul său este de a face interacțiunea CLI cu serviciile web cât mai prietenoase cu oamenii. Acesta oferă un simplu http care permite trimiterea de cereri HTTP arbitrare utilizând o sintaxă simplă și naturală și afișează o ieșire colorată. HTTPie poate fi folosit pentru testarea, depanarea și, în general, interacțiunea cu serverele HTTP.

Noțiuni de bază

Pentru a începe cu HTTPie pe o mașină Ubuntu, trebuie să instalați pachetul folosind apt-get.

sudo apt-get instala httpie

Odată ce este instalat, ar trebui să aveți HTTPie pe sistemul dvs. Încercați să faceți o solicitare GET către orice site web care utilizează HTTPie:

http www.tutsplus.com

Interogarea de mai sus dă următorul răspuns:

Se pare că HTTPie este instalat și funcționează pe sistemul dvs. Dacă vă uitați atent, rezultatul colorat al comenzii de mai sus arată că adresa URL a fost mutată permanent în https://tutsplus.com. Prin urmare, pentru a face o interogare GET pe tutsplus, modificați interogarea:

http https://tutsplus.com

Interogarea de mai sus va returna ieșirea HTML a solicitării GET pe adresa URL https://tutsplus.com. 

După cum se vede din interogarea de mai sus, singurele informații HTTPie necesitatea de a efectua o cerere este URL-ul.

Efectuarea cererilor de bază utilizând HTTPie

Înainte de a scufunda adânc în comenzile HTTPie, vom examina modul în care puteți efectua solicitările de bază utilizând HTTPie. Vom folosi serverul json pentru a avea un server fictiv care rulează pentru a face cereri. Pentru a începe cu serverul json, instalați serverul folosind npm.

npm instalați -g json-server

Creați un fișier numit index.js care va crea date aleatoare pentru serverul nostru fals.

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

Rulați serverul json utilizând index.js fişier.

json-server index.js

Acum serverul ar trebui să funcționeze la adresa http: // localhost: 3000 /.

Cerere GET Utilizând HTTPie

Implicit dacă o adresă URL este dată HTTPie, ea presupune că tipul de solicitare este GET și efectuează în mod corespunzător. Iată un exemplu de a OBȚINE cerere:

http http: // localhost: 3000 / utilizatori

Cererea de mai sus afișează următoarea ieșire:

HTTP / 1.1 200 OK Acces-Control-Permite-Acreditare: true Cache-control: no-cache Conexiune: pastrati-viu Content-Length: 212 Content-Type: application / json; charset = utf-8 Data: Tue, 18 Oct 2016 03:40:15 GMT ETag: W / "d4-4 + 4 + bS4GA0 + D / tDXlF8voQ" Expiră: -1 Pragma: Codificare X-Content-Type-Opțiuni: nosniff X-Powered-By: Express id ": 0," name ":" user0 ", "id": 2, "nume": "user2", "id": 3, "nume": "user4"] 

Cerere POST Utilizând HTTPie

Pentru a efectua o solicitare POST utilizând HTTPie, trebuie să adăugăm cuvântul cheie POST împreună cu datele care trebuie trimise la adresa URL. Iată un exemplu:

http POST http: // localhost: 3000 / utilizator id = 007 nume = RoyAgasthyan

Comanda ar afișa următoarea ieșire pe ecranul terminalului:

HTTP / 1.1 201 Crearea permisiunilor de acces-control-permisiune: true Cache-control: no-cache Conexiune: menținere în viață Content-Length: 43 Content-type: application / json; charset = utf-8 Data: Tue, 18 Oct 2016 03:46:22 GMT ETag: W / "2b-mpj // lkYJiGiWBB42OLoKA" Expiră: -1 Pragma: no-cache Var: Origine, , Accept-Encoding X-Content-Type-Opțiuni: nosniff X-Powered-By: Express "id": "007", "nume": "RoyAgasthyan" 

Încercați să faceți o solicitare GET utilizând HTTPie și ar trebui să vedeți datele recent postate în răspuns.

Trimiterea formularelor utilizând HTTPie

Trimiterea unui formular este o altă solicitare care este efectuată în mod obișnuit de către un utilizator. Cu HTTPie, devine destul de ușor să trimiteți un formular peste o adresă URL specificând formă opțiune după cum se arată:

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

Când se execută comanda de mai sus, Tipul de conținut este setat automat la application / x-www-form-urlencoded; charset = utf-8, prin urmare, nu este necesar să o setați în mod explicit.

Utilizarea redirecționării HTTP

După cum probabil ați observat în exemplul nostru anterior, în mod implicit, HTTPie nu gestionează redirecționările HTTP. Când am încercat să facem o solicitare GET pe www.tutsplus.com, a arătat un mesaj care să ateste că adresa URL a fost mutată. Dacă doriți ca HTTPie să gestioneze redirecționările, trebuie să adăugați o opțiune numită urma la comanda de solicitare.

http - urmăriți www.tutsplus.com

Interogarea HTTPie de mai sus ar gestiona redirecționările HTTP, dacă există.

Descărcați fișiere utilizând HTTPie

HTTPie oferă o funcție de descărcare a fișierelor de pe un server, similar cu comanda wget. Pentru a descărca fișierul, trebuie să specificați a Descarca împreună cu adresa URL.

http - descărcați http://www.tutorialspoint.com/python/python_tutorial.pdf

Comanda de mai sus ar afișa un răspuns, după cum se arată mai jos:

HTTP / 1.1 200 OK Accept-Ranges: bytes Access-Control-Allow-Headers: X-Requested-cu Access-Control-Allow-Origine: Content-Length: 3945951 Content Type: application / pdf 2016 04:01:43 GMT Etag: "3c35df-52fe21b892a6f" Ultima modificare: Thu, 07 Apr 2016 09:57:34 GMT Server: ECS (pnq / AF9A) X-Cache: HIT Descărcarea 3.76 MB la "python_tutorial.pdf -1 "| 28.03% 1.05 MB 63.85 kB / s 0:00:43 ETA

Gestionarea autentificării

Accesarea unei adrese URL a serviciului web ar necesita un anumit tip de autentificare. HTTPie acceptă majoritatea mecanismelor de autentificare utilizate în mod obișnuit. În mod implicit, HTTPie acceptă autentificarea de bază, deci trebuie doar să treci în numele de utilizator și parola la cererea cu -A opțiune. 

http -a username: parola www.mywebservice.com

Pentru a utiliza o autentificare digest, va trebui să introduceți numele mecanismului de autentificare utilizând -A opțiune.

http -A digest - un nume de utilizator: parola www.myservice.com

Personalizarea afișării răspunsului

Când trimitem o solicitare către o adresă URL, toate datele împreună cu informațiile din antet sunt afișate în terminal. HTTPie oferă o opțiune de personalizare a răspunsului la ieșire. Puteți imprima informațiile despre antetul și corpul individual specificând --antet și --corp împreună cu cererea.

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

Comanda de mai sus va tipări informațiile despre antet după cum se arată:

HTTP / 1.1 301 Mutarea permanentă CF-RAY: 2f6669f88fc43548-LHR Conexiune: păstrați-viu Data: 23 Oct 2016 16:02:32 GMT Locație: https://tutsplus.com/ Server: cloudflare-nginx Set-Cookie: __cfduid = dfea480f2567e7c463e66999adfdc73d71477238552; expiră = luni, 23-Oct-17 16:02:32 GMT; path = /; domeniu = .tutsplus.com; HttpOnly Transfer-Encoding: chunked 

Acum, dacă încercați cererea HTTP împreună cu --corp opțiune, ar trebui să imprimați numai porțiunea de corp.

http www.google.com - persoana

Comanda de mai sus va imprima următoarea ieșire:

   302 Mutat   

302 Mutat

Documentul a fost mutat aici.

Întreținerea sesiunilor

În timp ce utilizați HTTPie, fiecare cerere este independentă de alte solicitări. Putem păstra sesiunile în cazul în care dorim să persistăm sesiunea pentru alte cereri HTTP. Pentru a menține o sesiune, tot ce trebuie să faceți este să creați o sesiune numită după cum se arată:

http - sesiune = roy - roy: mypass www.myservice.com

Comanda de mai sus ar crea o sesiune numită roy care pot fi utilizate pentru alte cereri utilizând numele sesiunii. Iată un exemplu care utilizează sesiunea roy:

http - sesiune = roy www.myservice.com

Completați automat utilizarea funcției HTTP Prompt

Ar putea fi dificil să vă amintiți toate comenzile legate de HTTPie. http-promptă setul de instrumente oferă o funcție completă automată care poate fi utilizată împreună cu HTTPie. Pentru a începe cu http-promptă, instalați-l utilizând țâfnă:

sudo pip instala http-prompt

Pentru a începe o sesiune, invoca http-promptă cu adresa URL a serverului pe care o vom interoga. Reporniți JSON-server că am instalat și am invocat http-promptă așa cum se arată:

http-prompt http: // localhost: 3000 / utilizatori

Introduceți câteva litere din HTTP și ar trebui să apară mesajul auto complet.

Introduceți httpie și ar trebui să afișeze adresa URL pe care o interogăm.

http http: // localhost: 3000 / utilizatori

Toate comenzile de solicitare HTTPie ar trebui să funcționeze în http-promptă. Încercați să tastați în GET și ar trebui să apară în completarea automată. La introducerea comenzii GET, trebuie afișat următorul răspuns.

Înfășurați-o

În acest tutorial am văzut cum să începem HTTPie, o alternativă cURL mai bună pentru oameni. Am văzut cum să facem operațiile de bază de solicitare precum GET și POST utilizând HTTPie și alte caracteristici. Pentru informații detaliate despre utilizare HTTPie, să aruncați o privire la documentația oficială. De asemenea, verificați documentația oficială pentru http-promptă. Spuneți-ne gândurile dvs. în comentariile de mai jos.

Cod