cURL er et gratis og open source kommandolinjeprogram, der bruges til at overføre data til eller fra en ekstern vært med minimal brugerinteraktion. cURL fungerer med primære protokoller som HTTP, FTP, SCP og SFTP.
Det giver brugerne mulighed for at uploade og downloade data enten ved hjælp af enkeltkommandoer eller bash-scripts. Det giver også funktioner som brugergodkendelse, proxy-tunneling, download CV, formbaserede uploads, SSL-certifikater og så meget mere. Det er sikkert at sige, at cURL er mere end en HTTP-klient.
Denne vejledning gennemgår en cURL-funktionalitet, der giver brugerne mulighed for at udføre HTTP-postanmodninger ved hjælp af fildata.
Før vi går i gang, lad mig nævne, at dette ikke er en begyndervejledning til CURL; du har brug for en vis forudgående know-how, især viden om netværksprotokoller, HTTP-anmodninger og mere.
Før vi kan dykke ind i at bruge cURL til at udføre POST-anmodninger, skal vi først komme i gang.
Sådan installeres cURL
I de fleste tilfælde finder du cURL installeret i større Linux-distributioner som standard. Brug kommandoen for at bekræfte, at du har CURL
krølle - hjælpHvis du får en fejl:
-bash: curl: kommandoen blev ikke fundetDu bliver nødt til at installere det, før du fortsætter.
Brug standardpakkehåndtering til at fuldføre installationen som vist i nedenstående kommandoer:
sudo apt-get opdateringsudo apt-get install krølle -y
Før jeg diskuterer, hvordan jeg POSTer data fra en fil med cURL, tillad mig at tale kort om POST-anmodningen. Som sædvanlig, hvis du allerede er fortrolig med dette, er du velkommen til at springe videre; ellers skal du holde fast.
CURL POST-anmodning
HTTP-postanmodning er en af de mest populære HTTP / HTTPS-anmodningsmetoder, der bruges til at sende data til en ekstern vært for at oprette eller opdatere en ressource.
Nu:
Forveksl ikke metoden med PUT; selvom de er ret ens, har de deres forskelle.
Dataene, der sendes ved hjælp af en POST-anmodning, lagres hovedsagelig i HTTP-anmodningens anmodningsorgan.
Overvej f.eks. Nedenstående POST-anmodning, der sender brugernavn og adgangskode samt deres værdier.
POST / begrænset / login.php HTTP / 1.1 vært: linuxhint.com Indholdstype: applikation / x-www-form-urlencoded brugernavn = linuxhint & password = adgangskodeFor at sende ovenstående POST-anmodning ved hjælp af cURL kan vi specificere kommandoerne som:
curl -x POST -d “brugernavn = linuxhint & adgangskode = adgangskode” https: // linuxhint.com / begrænset / login.phpI ovenstående kommando brugte vi indstillingen -d til at fortælle cURL at inkludere standardoverskrifterne, som er Content-Type: application / x-www-form-urlencoded
Indstillingen -X specificerer HTTP-anmodningsmetoden, der skal bruges, i dette tilfælde HTTP POST-anmodning.
cURL Angiv indholdstype
I nogle tilfælde vil vi muligvis specificere [eksplicit] indholdstypen, når anmodningen sendes. Indholdstypenheden i overskriften specificerer medietypen for den ressource, vi sender. Medietypen er også almindeligt kendt som MIME-typen.
Hvis du ønsker at lære om MIME-typer, skal du overveje ressourcen nedenfor:
https: // linkfy.til / IANA-MIME-typer
For at specificere indholdstypen i en cURL-anmodning kan vi bruge -H-flag. Lad os for eksempel sende MIME-applikationstype / JSON.
curl -X POST -d “brugernavn”: “linuxhint”, “adgangskode”: “adgangskode” -H “Indholdstype: applikation / json” https: // linuxhint.com / begrænset / login.phpOvenstående specificerer, at vi vil sende et JSON-objekt til den angivne URL. Du kan bruge dette til at læse værdierne fra en JSON-fil eller sende den som rå.
Sådan læses data fra en fil
Antag at du vil fremsætte anmodninger på kommandolinjen ved hjælp af cURL, men at du har de data, der skal sendes, gemt i en fil. Du kan bruge indholdstypen til at specificere medietypen og derefter videregive filstien, der indeholder dataene. I dette eksempel vil jeg illustrere ved hjælp af et JSON-objekt.
JSON-filen (data.json) indeholder følgende værdier:
"brugernavn": "linuxhint",
"password": "password"
For at sende disse data fra en JSON-fil kan vi bruge -d og derefter videregive filnavnet som vist i kommandoen nedenfor:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / begrænset / login.phpDu kan også bruge indstillingen -data-binær.
curl -X POST -H “Content-Type: application / json” --data-binær “@ / home / user / data.json ”https: // linuxhint.com / begrænset / login.phpDu kan også bruge en tekstfil til at sende dataene; alt hvad du skal angive er indholdstypen som tekst / almindelig.
For eksempel en tekstfil (data.txt) indeholdende følgende værdier
brugernavn = linuxhint & adgangskode = adgangskodeBrug kommandoen cURL til at sende anmodningen som:
curl -X POST -H “Content-Type: text / plain” -d “data.txt ”https: // linuxhint.com / begrænset / login.phpDu kan bruge andre filtyper, du kan bruge, såsom XML, HTML og mange flere.
Konklusion
I denne vejledning har vi diskuteret, hvordan man laver POST-anmodninger og videregiver data i forskellige formater. Det er godt at huske på, at udover at være meget kraftfuld, er cURL også meget fleksibel. Det kan kombinere en samling af muligheder i en enkelt kommando for at oprette kraftige anmodninger. For mere information anbefaler jeg cURL-dokumentationen, da den er velskrevet.
https: // krølle.se / docs /
Tak fordi du læste, og have det sjovt med cURL.