cURL er et gratis kommandolinjeprogram med åpen kildekode som brukes til å overføre data til eller fra en ekstern vert med minimal brukerinteraksjon. cURL fungerer med primære protokoller som HTTP, FTP, SCP og SFTP.
Det lar brukerne laste opp og laste ned data enten ved hjelp av enkeltkommandoer eller bash-skript. Det gir også funksjoner som brukerautentisering, proxy-tunneling, nedlastings CV, formbaserte opplastinger, SSL-sertifikater og så mye mer. Det er trygt å si at cURL er mer enn en HTTP-klient.
Denne opplæringen vil lede deg gjennom en cURL-funksjonalitet som lar brukerne utføre HTTP-innleggsforespørsler ved hjelp av fildata.
Før jeg setter i gang, la meg nevne at dette ikke er en nybegynnerveiledning for CURL; du trenger en viss kunnskap, spesielt kunnskap om nettverksprotokoller, HTTP-forespørsler og mer.
Før vi kan dykke inn i å bruke cURL til å utføre POST-forespørsler, la oss først få oppsettet.
Slik installerer du cURL
I de fleste tilfeller vil du finne cURL installert i store Linux-distribusjoner som standard. Bruk kommandoen for å bekrefte at du har CURL
krølle --hjelpHvis du får en feil:
-bash: curl: kommandoen ble ikke funnetDu må installere den før du fortsetter.
Bruk standard pakkebehandling for å fullføre installasjonen som vist i kommandoene nedenfor:
sudo apt-get oppdateringsudo apt-get install curl -y
Før jeg diskuterer hvordan POST data fra en fil med cURL, la meg snakke kort om POST-forespørselen. Som vanlig, hvis du allerede er kjent med dette, kan du gjerne hoppe videre; ellers, hold deg rundt.
cURL POST-forespørsel
HTTP-postforespørsel er en av de mest populære metodene for HTTP / HTTPS-forespørsel som brukes til å sende data til en ekstern vert for å opprette eller oppdatere en ressurs.
Nå:
Vennligst ikke forveksle metoden med PUT; Selv om de er ganske like, har de forskjellene.
Dataene som sendes ved hjelp av en POST-forespørsel, lagres hovedsakelig i forespørselen i HTTP-forespørselen.
Vurder for eksempel POST-forespørselen nedenfor som sender brukernavn og passord, samt verdiene deres.
POST / begrenset / pålogging.php HTTP / 1.1 Vert: linuxhint.com Innholdstype: applikasjon / x-www-form-urlencoded brukernavn = linuxhint & passord = passordFor å sende ovennevnte POST-forespørsel ved hjelp av cURL, kan vi spesifisere kommandoene som:
curl -x POST -d “brukernavn = linuxhint & passord = passord” https: // linuxhint.com / begrenset / pålogging.phpI kommandoen ovenfor brukte vi alternativet -d for å fortelle cURL å inkludere standard overskrifter, som er Content-Type: application / x-www-form-urlencoded
Alternativet -X spesifiserer HTTP-forespørselsmetoden som skal brukes, i dette tilfellet HTTP POST-forespørsel.
cURL Angi innholdstype
I noen tilfeller vil vi kanskje spesifisere [eksplisitt] innholdstypen når vi sender forespørselen. Content-Type-enheten i overskriften spesifiserer medietypen til ressursen vi sender. Medietypen er også kjent som MIME-typen.
Hvis du ønsker å lære om MIME-typer, bør du vurdere ressursen nedenfor:
https: // linkfy.til / IANA-MIME-typer
For å spesifisere innholdstypen i en cURL-forespørsel, kan vi bruke -H-flagget. La oss for eksempel sende MIME-applikasjonstype / JSON.
curl -X POST -d “brukernavn”: “linuxhint”, “passord”: “passord” -H “Innholdstype: applikasjon / json” https: // linuxhint.com / begrenset / pålogging.phpOvennevnte spesifiserer at vi vil sende et JSON-objekt til den angitte URL-en. Du kan bruke dette til å lese verdiene fra en JSON-fil eller sende den som rå.
Hvordan lese data fra en fil
Anta at du vil komme med forespørsler på kommandolinjen ved hjelp av cURL, men at du har dataene du skal sende, lagret i en fil. Du kan bruke innholdstypen til å spesifisere medietypen og deretter sende filstien som inneholder dataene. For dette eksemplet vil jeg illustrere ved hjelp av et JSON-objekt.
JSON-filen (data.json) inneholder følgende verdier:
"brukernavn": "linuxhint",
"password": "passord"
For å sende disse dataene fra en JSON-fil, kan vi bruke -d og deretter sende filnavnet som vist i kommandoen nedenfor:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / begrenset / pålogging.phpDu kan også bruke alternativet -data-binært.
curl -X POST -H “Content-Type: application / json” --data-binary “@ / home / user / data.json ”https: // linuxhint.com / begrenset / pålogging.phpDu kan også bruke en tekstfil til å sende dataene; alt du trenger å spesifisere er innholdstypen som tekst / vanlig.
For eksempel en tekstfil (data.txt) som inneholder følgende verdier
brukernavn = linuxhint & passord = passordVed å bruke cURL-kommandoen, send bare forespørselen som:
curl -X POST -H “Content-Type: text / plain” -d “data.txt ”https: // linuxhint.com / begrenset / pålogging.phpDu kan bruke andre filtyper du kan bruke, for eksempel XML, HTML og mange flere.
Konklusjon
I denne opplæringen har vi diskutert hvordan du kan lage POST-forespørsler og sende data i forskjellige formater. Det er godt å huske på at i tillegg til å være veldig kraftig, er cURL også veldig fleksibel. Det kan kombinere en samling alternativer i en enkelt kommando for å lage kraftige forespørsler. For mer informasjon, anbefaler jeg cURL-dokumentasjonen ettersom den er godt skrevet.
https: // krølle.se / docs /
Takk for at du leser, og ha det gøy med CURL.