de Luciano Strika
Cum să începeți să utilizați Curl și de ce: o introducere practică

Fie că este vorba de testarea ieșirii unui API înainte de a-l implementa în producție sau pur și simplu pentru a obține un răspuns de pe un site web (de exemplu, pentru a verifica dacă nu este în jos), Curl este practic omniprezent.
Ca om de știință a datelor, a trebuit să o folosesc din când în când. Cu toate acestea, de cele mai multe ori am ajuns să înlocuiesc doar parametrii dintr-o comandă curl copiată și lipită care a înconjurat canalul Slack al echipei mele.
Am decis că trebuie să înțeleg mai bine acest instrument puternic dacă doresc să-l folosesc la potențialul său maxim și acum sunt aici pentru a împărtăși unele dintre cele mai interesante lucruri pe care le-am găsit în acest tutorial pentru curl.
Dacă aveți sfaturi sau trucuri pe care doriți să le adăugați, vă rugăm să faceți acest lucru în comentarii, deoarece înțelegerea mea despre acest instrument este încă în stadiile incipiente.
Curl: Pentru ce este bun?
Curl este un instrument din linia de comandă care ne permite să facem cereri HTTP de la shell. De asemenea, acoperă multe alte protocoale, cum ar fi FTP, deși depășesc sfera acestui tutorial.
Numele său înseamnă „URL client”și a fost dezvoltat de dezvoltatorul suedez Daniel Stenberg. Este un proiect open source, iar codul său poate fi găsit aici, în caz că aveți chef să contribuiți.
Îl puteți invoca de la terminalul dvs. preferat și, de obicei, este preinstalat în sistemele de operare bazate pe Linux. În caz contrar, poate fi descărcat în mod normal prin apt-get pe Linux și preparare pe Mac.
Apelarea unei metode GET
În forma sa de bază, o comandă curl va arăta astfel:
curl http://www.dataden.tech
Comportamentul implicit pentru curl este de a invoca o metodă HTTP GET pe adresa URL dată. În acest fel, ieșirea programului pentru acea comandă va fi întregul corp al răspunsului HTTP (în acest caz, HTML) pe care site-ul îl returnează pe un GET, care va fi scris așa cum este dat pe stdout.
Dacă doriți să citiți un răspuns fără să părăsiți shell-ul, vă recomand cel puțin să îl introduceți într-un Mai puțin comanda, pentru a putea defila cu ușurință prin ieșire.
De multe ori vom dori să direcționăm conținutul răspunsului într-un fișier. Acest lucru se face cu -o argument, ca acesta:
curl -o output.html www.dataden.tech
care este echivalent cu:
curl www.dataden.tech > output.html
Opțional, puteți specifica adresa URL a site-ului pe care doriți să îl apelați curl cu un -s argument, ca acesta:
curl -s http://www.dataden.tech
permițându-vă să schimbați ordinea argumentelor dvs.
Puteți utiliza, de asemenea -Următorul pentru a specifica mai multe adrese URL, deși documentul oficial recomandă să apelați în schimb curl pe fiecare adresă URL cu o comandă diferită.
Efectuarea unui POST la o adresă URL
Uneori veți dori să testați dacă un API funcționează corect și, de obicei, acest lucru va necesita trimiterea de argumente către acesta.
De obicei, vom face acest lucru prin metoda POST, trecând niște JSON cu toți parametrii necesari. Există multe modalități de a face acest lucru cu curl.
Puteți transmite valorile argumentelor dvs. astfel:
curl --data "name=John&surname=Doe" http://www.dataden.tech
Sau ca un JSON obișnuit:
curl --data '{"name":"John","surname":"Doe"}' http://www.dataden.tech
Folosind -date este echivalent cu utilizarea -d, și ambele vor face ca metoda să se schimbe automat în POST. Cu toate acestea, putem folosi și fișierul -X steag (-cerere) pentru a specifica ce metodă dorim să invocăm:
curl -X "POST" -d "name=John&surname=Doe" http://www.example.com
Preluarea antetelor site-ului
Uneori trebuie doar să vedem rapid dacă site-ul este încă în funcțiune, fără să vrem să încărcăm întregul răspuns potențial greu. Alteori, anteturile stochează configurații importante.
Aceste două cazuri de utilizare sunt, de asemenea, abordate prin curl. Putem folosi -include (-i) parametru pentru a include anteturile și -cap (-Eu -asta este capitalul „i” -) să includă doar anteturile (apelând metoda HEAD).
Setarea valorii utilizator-agent
Acum, că am acoperit elementele de bază, permiteți-mi să vă trec prin unele dintre cele mai tari lucruri pe care le-am găsit că le putem face cu buclele.
agent utilizator argumentul vă permite să specificați ce versiune de dispozitiv și de browser utilizați, în cazul în care site-ul face randarea diferită.
Cu aceasta, puteți vedea versiunea mobilă a unui site de pe laptopul dvs. sau invers.
Din punct de vedere al securității, acest lucru ridică probabil unele probleme. Nu știam cât de ușor este să pretind că folosesc un alt dispozitiv (fără a utiliza chiar și o mașină virtuală) până acum și, lucrând în prevenirea fraudei, pot vedea de ce ar putea fi o problemă.
Acestea fiind spuse, atâta timp cât utilizați acest lucru definitiv, acesta este un mod minunat de a vedea cum arată un site web de pe o tabletă, un dispozitiv mobil sau un laptop, pentru a numi câteva.
Iată un exemplu, direct din documentația oficială (deși listele de utilizatori-agenți sunt ușor disponibile online).
curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" www.example.com
Programarea unei conexiuni cu Curl
Un alt motiv pentru care am început să aflu mai multe despre curl a fost că am vrut să văd cât timp a durat exact ca site-ul meu web să răspundă.
Deși documentația de bază nu o acoperă, un pic de googling a descoperit această comandă, pe care am găsit-o foarte utilă:
curl -w "%{time_total}n" -o /dev/null -s www.example.com
Aceasta va scoate pur și simplu timpul total necesar pentru a prelua răspunsul din domeniul dat.
Mai general, -w (–scrie-out) argumentul ia un șir special de formatare și completează cuvintele cheie rezervate cu proprietăți diferite ale răspunsului, într-un mod formatat. Toate cuvintele cheie și valorile lor respective sunt disponibile în pagina manuală a comenzii.
Lecturi suplimentare
Iată câteva linkuri pe care le-ați putea găsi interesante, în cazul în care doriți să aflați mai multe despre acest subiect amplu:
- Lista utilizatorilor-agenți O compilație de argumente utilizator-agent pentru diferite dispozitive și browsere.
- Curl’s documentație oficială.
- Curl’s pagina de mana.
A concluziona
Sper că ți s-a părut utilă această introducere și vei părăsi acest tutorial știind cel puțin elementele de bază ale acestei comenzi convenabile.
După cum am spus mai înainte, învăț și eu în continuare și voi aprecia orice alte informații interesante despre utilizarea programului. Același lucru este valabil pentru orice feedback despre ceea ce am scris până acum.
Dacă am făcut vreo greșeală sau dacă există o parte pe care credeți că aș fi putut să o formulez mai clar, vă rugăm să ne anunțați.
Sper să ne revedem în curând, codificare fericită!
Urmează-mă pe mine Mediu și Stare de nervozitate să fiu la curent cu tutorialele, sfaturile și articolele mele. Luați în considerare partajarea acestui articol cu un prieten dezvoltator web dacă v-a plăcut (sau ca un mod pasiv agresiv de a le spune să învețe curl).
Publicat inițial la www.dataden.tech pe 7 octombrie 2018.