cURL är ett gratis kommandoradsverktyg med öppen källkod som används för att överföra data till eller från en fjärrvärd med minimal användarinteraktion. cURL fungerar med primära protokoll som HTTP, FTP, SCP och SFTP.
Det tillåter användare att ladda upp och ladda ner data antingen med enkla kommandon eller bash-skript. Den tillhandahåller också funktioner som användarautentisering, proxytunnel, nedladdnings CV, formulärbaserade uppladdningar, SSL-certifikat och så mycket mer. Det är säkert att säga att cURL är mer än en HTTP-klient.
Denna handledning kommer att gå igenom en cURL-funktion som gör det möjligt för användare att utföra HTTP-postförfrågningar med fildata.
Innan vi börjar, låt mig nämna att detta inte är en nybörjarguide för CURL; du behöver en viss tidigare kunskap, särskilt kunskap om nätverksprotokoll, HTTP-förfrågningar och mer.
Innan vi kan dyka in i att använda cURL för att utföra POST-förfrågningar, låt oss först komma igång.
Hur man installerar cURL
I de flesta fall hittar du cURL installerat i större Linux-distributioner som standard. Använd kommandot för att bekräfta att du har CURL
curl --hjälpOm du får ett fel:
-bash: curl: kommandot hittades inteDu måste installera den innan du fortsätter.
Använd standardpakethanteraren för att slutföra installationen som visas i kommandona nedan:
sudo apt-get-uppdateringsudo apt-get install curl -y
Innan jag diskuterar hur jag POSTar data från en fil med cURL, låt mig berätta kort om POST-begäran. Som vanligt, om du redan är bekant med detta kan du gärna hoppa över; annars, håll dig kvar.
CURL POST-begäran
HTTP-postbegäran är en av de mest populära metoderna för HTTP / HTTPS-begäran som används för att skicka data till en fjärrvärd för att skapa eller uppdatera en resurs.
Nu:
Förväxla inte metoden med PUT; även om de är ganska lika har de skillnader.
Data som skickas med en POST-begäran lagras huvudsakligen i HTTP-begärans begäran.
Tänk till exempel på POST-begäran nedan som skickar användarnamn och lösenord samt deras värden.
POST / begränsad / inloggning.php HTTP / 1.1 Värd: linuxhint.com Innehållstyp: applikation / x-www-form-urlencoded användarnamn = linuxhint & lösenord = lösenordFör att skicka ovanstående POST-begäran med cURL kan vi ange kommandona som:
curl -x POST -d “användarnamn = linuxhint & lösenord = lösenord” https: // linuxhint.com / begränsad / inloggning.phpI ovanstående kommando använde vi alternativet -d för att berätta för cURL att inkludera standardrubrikerna, vilket är Content-Type: application / x-www-form-urlencoded
Alternativet -X anger vilken HTTP-begäran som ska användas, i detta fall HTTP POST-begäran.
cURL Ange innehållstyp
I vissa fall kanske vi vill ange [uttryckligen] innehållstypen när vi skickar begäran. Innehållet Content-Type i rubriken anger typen av media för den resurs som vi skickar. Mediatypen är också allmänt känd som MIME-typen.
Om du vill lära dig mer om MIME-typer, överväg resursen nedan:
https: // linkfy.till / IANA-MIME-typer
För att specificera innehållstypen i en cURL-begäran kan vi använda flaggan -H. Låt oss till exempel skicka MIME-applikationstyp / JSON.
curl -X POST -d “användarnamn”: “linuxhint”, “lösenord”: “lösenord” -H “Innehållstyp: applikation / json” https: // linuxhint.com / begränsad / inloggning.phpOvanstående specificerar att vi vill skicka ett JSON-objekt till den angivna URL: n. Du kan använda detta för att läsa värdena från en JSON-fil eller skicka den som rå.
Hur man läser data från en fil
Antag att du vill göra förfrågningar på kommandoraden med cURL, men att du har informationen att skicka lagrad i en fil. Du kan använda innehållstypen för att ange medietypen och sedan skicka filvägen som innehåller data. För detta exempel kommer jag att illustrera med ett JSON-objekt.
JSON-filen (data.json) innehåller följande värden:
"användarnamn": "linuxhint",
"password": "lösenord"
För att skicka dessa data från en JSON-fil kan vi använda -d och sedan skicka filnamnet som visas i kommandot nedan:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / begränsad / inloggning.phpDu kan också använda alternativet -data-binärt.
curl -X POST -H “Content-Type: application / json” --data-binary “@ / home / user / data.json ”https: // linuxhint.com / begränsad / inloggning.phpDu kan också använda en textfil för att skicka data; allt du behöver ange är innehållstypen som text / vanlig.
Till exempel en textfil (data.txt) som innehåller följande värden
användarnamn = linuxhint & lösenord = lösenordMed kommandot cURL, skicka helt enkelt begäran som:
curl -X POST -H “Content-Type: text / plain” -d “data.txt ”https: // linuxhint.com / begränsad / inloggning.phpDu kan använda andra filtyper som du kan använda som XML, HTML och många fler.
Slutsats
I denna handledning har vi diskuterat hur man gör POST-förfrågningar och skickar data i olika format. Det är bra att komma ihåg att förutom att vara mycket kraftfull är cURL också mycket flexibel. Det kan kombinera en samling alternativ i ett enda kommando för att skapa kraftfulla förfrågningar. För mer information rekommenderar jag cURL-dokumentationen eftersom den är välskriven.
https: // curl.se / docs /
Tack för att du läste och ha kul med CURL.