cURL er et gratis og åpen kildekode-kommandolinjeverktøy 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. Den tilbyr også funksjoner som brukerautentisering, proxy-tunneling, nedlasting-CV, skjemabaserte opplastinger, SSL-sertifikater og 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 begynner, la meg nevne at dette ikke er en nybegynnerguide for cURL; du trenger en viss kunnskap, spesielt kunnskap om nettverksprotokoller, HTTP-forespørsler og mer.
Før vi kan dykke ned i å bruke cURL til å utføre POST -forespørsler, la oss først sette opp.
Slik installerer du cURL
I de fleste tilfeller finner du cURL installert i store Linux -distribusjoner som standard. For å bekrefte at du har cURL, bruk kommandoen
krølle –- hjelpHvis du får en feilmelding:
-bash: curl:kommandoikke funnet
Du 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 installkrøll-og
Før jeg diskuterer hvordan jeg 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 fast.
cURL POST -forespørsel
HTTP -postforespørselen er en av de mest populære HTTP/HTTPS -forespørselsmetodene 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 sine forskjeller.
Dataene som sendes med en POST -forespørsel, lagres hovedsakelig i forespørselskroppen til HTTP -forespørselen.
Vurder for eksempel POST -forespørselen nedenfor som sender brukernavn og passord, samt verdiene deres.
POST/begrenset/login.php HTTP/1.1Vert: linuxhint.com Innholdstype: applikasjon/x-www-form-urlencodedbrukernavn= linuxhint&passord= passordFor å sende POST -forespørselen ovenfor med cURL, kan vi spesifisere kommandoene som:
krøll-xPOST-d brukernavn= linuxhint&passord= passord https://linuxhint.com/begrenset/login.phpI kommandoen ovenfor brukte vi alternativet -d for å be cURL om å inkludere standardoverskriftene, som er Content-Type: application/x-www-form-urlencoded
Alternativet -X angir HTTP -forespørselsmetoden for i dette tilfellet HTTP POST -forespørsel.
cURL Angi innholdstype
I noen tilfeller vil vi kanskje [eksplisitt] spesifisere innholdstypen når vi sender forespørselen. Innholdstype-enheten i overskriften angir medietypen for 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.to/IANA-MIME-Types
For å spesifisere innholdstype i en cURL -forespørsel, kan vi bruke -H -flagget. La oss for eksempel sende MIME -type applikasjon/JSON.
krøll-XPOST-d {brukernavn: linuxhint, passord: passord} -HInnholdstype: applikasjon/json https://linuxhint.com/begrenset/login.phpOvennevnte angir at vi vil sende et JSON -objekt til den oppgitte URL -adressen. Du kan bruke dette til å lese verdiene fra en JSON -fil eller sende den som rå.
Slik leser du data fra en fil
Anta at du vil sende forespørsler på kommandolinjen ved å bruke cURL, men du har dataene du vil sende lagret i en fil. Du kan bruke innholdstypen til å angi medietypen og deretter sende filbanen 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',
'passord':'passord'
}
For å sende disse dataene fra en JSON -fil, kan vi bruke -d og deretter sende filnavnet som vist i kommandoen nedenfor:
krøll-XPOST-HInnholdstype: applikasjon/json-d @data.json https://linuxhint.com/begrenset/login.phpDu kan også bruke alternativet –data-binært.
krøll-XPOST-HInnholdstype: applikasjon/json--data-binær @ /hjem/bruker/data.json https://linuxhint.com/begrenset/login.phpDu kan også bruke en tekstfil til å sende dataene; alt du trenger å spesifisere er innholdstype som tekst/vanlig.
For eksempel en tekstfil (data.txt) som inneholder følgende verdier
brukernavn= linuxhint&passord= passordVed å bruke cURL -kommandoen sender du bare forespørselen som:
krøll-XPOST-HInnholdstype: tekst/vanlig-ddata.txt https://linuxhint.com/begrenset/login.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 lager POST -forespørsler og sender data i forskjellige formater. Det er godt å huske på at i tillegg til å være veldig kraftig, er cURL også veldig fleksibel. Den kan kombinere en samling alternativer i en enkelt kommando for å lage kraftige forespørsler. For mer informasjon, anbefaler jeg cURL -dokumentasjonen da den er godt skrevet.
Takk for at du leser, og ha det gøy med cURL.