Sådan bruges cURL -postdata fra fil

How Use Curl Post Data From File



cURL er et gratis og open-source kommandolinjeværktøj, 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 meget mere. Det er sikkert at sige, at cURL er mere end en HTTP -klient.







Denne vejledning vil guide dig gennem en cURL -funktionalitet, der giver brugerne mulighed for at udføre HTTP -postanmodninger ved hjælp af fildata.



Inden 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 kendskab til netværksprotokoller, HTTP-anmodninger og mere.



Før vi kan dykke ned i at bruge cURL til at udføre POST -anmodninger, lad os først få opsætning.





Sådan installeres cURL

I de fleste tilfælde finder du som standard cURL installeret i større Linux -distributioner. For at bekræfte, at du har cURL, skal du bruge kommandoen

krølle –- hjælp

Hvis du får en fejl:



-bash: curl:kommandoikke fundet

Du bliver nødt til at installere det, før du fortsætter.

Brug standardpakkehåndteringen til at fuldføre installationen som vist i kommandoerne herunder:

sudo apt-get opdatering

sudo apt-get installkrølle-og

Inden jeg diskuterer, hvordan man POST -data fra en fil med cURL, tillader jeg mig at tale kort om POST -anmodningen. Som sædvanlig, hvis du allerede kender dette, kan du helt sikkert springe videre; ellers bliv ved.

cURL POST -anmodning

HTTP -postanmodningen 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 :

Du må ikke forveksle metoden med PUT; selvom de er ret ens, har de deres forskelle.

De data, der sendes ved hjælp af en POST -anmodning, lagres hovedsageligt i HTTP -anmodningens anmodningstekst.

Overvej f.eks. Nedenstående POST -anmodning, der sender brugernavn og adgangskode samt deres værdier.

STOLPE/begrænset/login.php HTTP/1.1Vært: linuxhint.com Indholdstype: applikation/x-www-form-urlenkodetbrugernavn= linuxhint&adgangskode= adgangskode

For at sende ovenstående POST -anmodning ved hjælp af cURL kan vi angive kommandoerne som:

krølle-xSTOLPE-d brugernavn= linuxhint&adgangskode= adgangskode https://linuxhint.com/begrænset/login.php

I ovenstående kommando brugte vi indstillingen -d til at fortælle cURL at inkludere standardoverskrifterne, som er Indholdstype: application/x-www-form-urlencoded

Indstillingen -X angiver HTTP -anmodningsmetoden til i dette tilfælde at bruge HTTP POST -anmodning.

cURL Angiv indholdstype

I nogle tilfælde vil vi måske [eksplicit] angive indholdstypen, når vi sender anmodningen. Indholdstypenheden i overskriften angiver medietypen for den ressource, vi sender. Medietypen er også almindeligt kendt som MIME -typen.

Hvis du ønsker at lære mere om MIME -typer, skal du overveje nedenstående ressource:

https://linkfy.to/IANA-MIME-Types

For at angive indholdstypen i en cURL -anmodning kan vi bruge -H -flag. Lad os f.eks. Sende MIME -type applikation/JSON.

krølle-XSTOLPE-d {brugernavn: linuxhint, adgangskode: adgangskode} -HIndholdstype: applikation/json https://linuxhint.com/begrænset/login.php

Ovenstående angiver, 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 foretage anmodninger på kommandolinjen ved hjælp af cURL, men du har dataene til at sende gemt i en fil. Du kan bruge indholdstypen til at angive 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',
'adgangskode':'adgangskode'
}

For at sende disse data fra en JSON -fil kan vi bruge -d og derefter sende filnavnet som vist i kommandoen herunder:

krølle-XSTOLPE-HIndholdstype: applikation/json-d @data.json https://linuxhint.com/begrænset/login.php

Du kan også bruge –data-binær indstilling.

krølle-XSTOLPE-HIndholdstype: applikation/json--data-binær @ /hjem/bruger/data.json https://linuxhint.com/begrænset/login.php

Du kan også bruge en tekstfil til at sende dataene; alt du skal angive er indholdstypen som tekst/almindeligt.

For eksempel en tekstfil (data.txt), der indeholder følgende værdier

brugernavn= linuxhint&adgangskode= adgangskode

Ved hjælp af cURL -kommandoen skal du blot sende anmodningen som:

krølle-XSTOLPE-HIndholdstype: tekst/almindeligt-ddata.txt https://linuxhint.com/begrænset/login.php

Du kan bruge andre filtyper, du kan bruge, f.eks. XML, HTML og mange flere.

Konklusion

I denne vejledning har vi diskuteret, hvordan man laver POST -anmodninger og sender 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 muligheder i en enkelt kommando for at oprette kraftfulde anmodninger. For mere information anbefaler jeg cURL -dokumentationen, da den er velskrevet.

https://curl.se/docs/

Tak fordi du læste, og god fornøjelse med cURL.