Instrumentul de linie de comandă curl este un asistent perfect atunci când lucrați cu cod HTTP. Testați cererile, explorați formatele de date și multe altele!
Hypertext Transfer Protocol (HTTP) este coloana vertebrală a comunicării prin Internet, permițând transferul de date între servere și clienți. Cu toate acestea, interacțiunea cu punctele finale HTTP poate fi o provocare, mai ales pentru începători.
Din fericire, curl, un instrument de linie de comandă, oferă o modalitate ușoară și eficientă de a trimite și primi solicitări HTTP. Aici veți învăța cum să utilizați curl pentru a face cereri HTTP de bază POST, GET, DELETE și PUT.
Instalarea buclei
În mod implicit, curl este instalat pe sistemele de operare majore, inclusiv macOS, Linux și Unix.
Puteți confirma că aveți curl instalat rulând comanda de mai jos:
răsuci
Comanda de mai sus ar trebui să afișeze „încercați „curl --help” sau „curl --manual” pentru mai multe informații” pe terminal.
Dacă curl nu este instalat pe sistemul dvs. de operare, îl puteți descărca și instala de la pagina de descărcare a buclelor.
Efectuarea unei cereri HTTP GET
O solicitare HTTP GET este o metodă de a solicita date de la un server web. Puteți utiliza aceste solicitări pentru a prelua o anumită resursă, cum ar fi o pagină web, o imagine sau un videoclip.
Puteți face o cerere GET cu curl în formatul de mai jos:
curl -X GET
A inlocui cu adresa URL a resursei pe care doriți să o preluați.
De exemplu:
curl -X GET https://example.com/todos/1
Rularea comenzii de mai sus face o solicitare HTTP GET către adresa URL https://example.com/todos/1. The -X GET opțiunea specifică că metoda HTTP este GET. Când se execută comanda, curl trimite o cerere GET către serverul specificat în URL și așteaptă răspunsul serverului.
Dacă serverul răspunde cu un cod de stare reușit, răsuci afișează corpul răspunsului în terminal, care, în acest caz, ar fi datele JSON despre un articol de făcut cu un ID de 1.
Alternativ, puteți face o solicitare GET fără a specifica -X flag deoarece, în mod implicit, curl face o solicitare GET atunci când nu specificați o metodă de solicitare cu -X steag.
De exemplu:
răsuci https://example.com/todos/1
Rularea comenzii de mai sus va returna același răspuns ca și comanda anterioară cu „-X GET" steag.
Efectuarea unei solicitări HTTP POST
O solicitare HTTP POST este o metodă de salvare a datelor pe un server web. Spre deosebire de o solicitare GET, care trimite date ca parte a URL-ului, o solicitare POST trimite date în corpul mesajului cererii. Acest lucru face cererile POST mai sigure pentru transmiterea de informații sensibile.
Puteți face o cerere POST cu curl în formatul de mai jos:
curl -X POST -d
De exemplu:
curl -X POST -d 'nume=jack' -d '[email protected]' \
https://example.com/users
Comanda de mai sus trimite o solicitare POST către https://example.com/users cu datele specificate de -d marcați ca sarcină utilă.
The -d flag specifică datele de trimis. În acest caz, a specificat doi parametri de date: nume=jack și [email protected].
Când utilizați -d marcați de mai multe ori într-o comandă, puteți îmbina câmpurile folosind simbolul &.
De exemplu:
curl -d „name=jack&[email protected]” https://example.com/api/users
Unele date pe care ați putea încerca să le trimiteți într-o solicitare POST ar putea fi dificil de încadrat într-un singur șir în terminalul dvs. În astfel de cazuri, ar putea fi ideal să citiți și să POSTați datele dintr-un fișier folosind curl.
Pentru a trimite date dintr-un fișier într-o solicitare POST ca sarcină utilă cu curl, utilizați @ semnează imediat după -d flag, urmat de calea fișierului către fișierul pe care doriți să-l trimită curl în cerere.
De exemplu:
curl -X POST -d @users.txt https://example.com/api/users
Specificarea tipului de conținut
Folosind -d flag setează automat antetul Content-Type la application/x-www-form-urlencoded. Cu toate acestea, puteți specifica manual tipul de conținut adecvat pentru cererea dvs. utilizând -H sau --antet steag urmat de tipul de conținut dorit.
De exemplu:
curl -H „Tip de conținut: aplicație/json” \
-d '{"nume": "Jack", "email": "[email protected]"}' \
https://example.com/api/users
În comanda de mai sus, -H flag specifică antetul Content-Type ca Tip de conținut: application/json.
Puteți înlocui aplicație/json cu orice alt tip MIME valid sau tip de conținut adecvat pentru datele pe care le trimiteți în corpul solicitării. De exemplu, atunci când încărcați date binare, cum ar fi un fișier imagine sau audio, ar trebui să setați Tipul de conținut la multipart/form-data.
Acest lucru vă permite să specificați formatul așteptat al datelor trimise, care poate fi important atunci când interacționați cu API-uri sau servicii web care necesită anumite tipuri de conținut pentru o procesare adecvată.
Efectuarea unei cereri HTTP PUT
O solicitare HTTP PUT este o metodă de actualizare a unei resurse existente pe un server web sau de a crea una dacă resursa nu există. Această metodă diferă de metoda POST în sensul că este idempotentă. Aceasta înseamnă că apelarea metodei PUT o dată sau de mai multe ori succesiv are același efect asupra serverului.
Puteți face o cerere PUT cu curl în formatul de mai jos:
curl -X PUT -H „Tip de conținut: aplicație/json” \
-d '{"nume": "Jack Bauer", "e-mail": "[email protected]"}' \
https://example.com/api/users/4
Comanda de mai sus trimite o solicitare PUT în format JSON către serverul web specificat în adresa URL de mai sus și actualizează resursa specificată. Dacă resursa specificată nu există, aceasta va crea resursa pe serverul web.
Efectuarea unei cereri HTTP DELETE
O solicitare HTTP DELETE este o metodă de ștergere a unei resurse specificate de pe un server web. Similar cererilor PUT, cererile DELETE sunt idempotente. Trimiterea aceleiași solicitări DELETE de mai multe ori către aceeași resursă va produce același rezultat pe server.
Puteți face o solicitare DELETE cu curl rulând comanda de mai jos:
curl -X DELETE http://example.com/api/users/3
Comanda de mai sus trimite o solicitare DELETE la serverul web specificat în adresa URL de mai sus și șterge resursa specificată.
Solicitările de ștergere elimină definitiv resursa specificată de pe server. Astfel, un server web care acceptă DELETE necesită de obicei o formă de autentificare sau autorizare înainte de a putea face această cerere.
Iată cum puteți face o solicitare DELETE cu un antet de autorizare:
curl -X DELETE -H „Autorizare: Purtător my_access_token” \
https://example.com/api/users/3
Comanda de mai sus furnizează informațiile de autentificare în antetul cererii folosind metoda de autentificare Bearer cu -H steag. Autorizare: Purtător my_access_token este valoarea antetului. my_access_token este un substituent pentru valoarea reală a simbolului de acces.
Alte moduri prin care puteți face solicitări HTTP
În afară de curl, există mai multe moduri de a face cereri HTTP în funcție de contextul solicitării. Cele mai comune metode includ utilizarea unui browser web precum Chrome, a unui instrument GUI precum Postman sau a unui client API.
Fiecare dintre aceste opțiuni vine cu avantajele și compromisurile sale. În cele din urmă, alegerea unui instrument va depinde de cerințele sarcinii tale.