cURL je bezplatný a otvorený zdrojový nástroj príkazového riadka, ktorý sa používa na prenos údajov do alebo zo vzdialeného hostiteľa s minimálnou interakciou s používateľom. cURL funguje s primárnymi protokolmi ako HTTP, FTP, SCP a SFTP.
Umožňuje používateľom nahrávať a sťahovať údaje pomocou jednoduchých príkazov alebo skriptov bash. Poskytuje tiež funkcie, ako je autentifikácia používateľa, tunelovanie servera proxy, obnovenie sťahovania, nahrávanie na základe formulárov, certifikáty SSL a mnoho ďalších. Dá sa bezpečne povedať, že cURL je viac ako klient HTTP.
Tento tutoriál vás prevedie jednou funkciou cURL, ktorá používateľom umožňuje vykonávať požiadavky na odoslanie HTTP pomocou údajov o súboroch.
Skôr ako začneme, dovoľte mi spomenúť, že toto nie je príručka pre začiatočníkov k CURL; potrebujete určitý stupeň predchádzajúceho know-how, najmä znalosť sieťových protokolov, požiadaviek HTTP a ďalších.
Predtým, ako sa dostaneme k použitiu cURL na plnenie požiadaviek POST, najskôr si nastavíme.
Ako nainštalovať cURL
Vo väčšine prípadov nájdete cURL štandardne nainštalované vo veľkých distribúciách Linuxu. Na potvrdenie, že máte cURL, použite príkaz
zvinutie-pomocAk sa zobrazí chyba:
-bash: curl:príkaznenájdené
Pred pokračovaním budete musieť nainštalovať.
Na dokončenie inštalácie použite predvolený správca balíkov, ako je uvedené v nižšie uvedených príkazoch:
sudo apt-get aktualizáciasudo apt-get nainštalovaťzvinúť-a
Pred diskusiou o tom, ako POST publikovať údaje zo súboru pomocou cURL, mi dovoľte stručne hovoriť o požiadavke POST. Ako obvykle, ak to už poznáte, môžete pokojne preskočiť dopredu; inak sa drž.
požiadavka na CURL POST
Žiadosť o príspevok HTTP je jednou z najobľúbenejších metód požiadaviek HTTP/HTTPS, ktoré sa používajú na odosielanie údajov vzdialenému hostiteľovi na vytvorenie alebo aktualizáciu zdroja.
Teraz :
Nezamieňajte prosím metódu s PUT; aj keď sú si veľmi podobní, majú svoje rozdiely.
Dáta odoslané pomocou požiadavky POST sú uložené hlavne v tele požiadavky HTTP požiadavky.
Zvážte napríklad nižšie uvedenú požiadavku POST, ktorá odosiela používateľské meno a heslo, ako aj ich hodnoty.
POST/obmedzený/login.php HTTP/1.1Hostiteľ: linuxhint.com Typ obsahu: aplikácia/x-www-form-urlencodedpoužívateľské meno= linuxhint&heslo= hesloNa odoslanie vyššie uvedenej požiadavky POST pomocou cURL môžeme zadať príkazy ako:
zvinúť-XPOST-d používateľské meno= linuxhint&heslo= heslo https://linuxhint.com/obmedzený/login.phpVo vyššie uvedenom príkaze sme použili možnosť -d, aby sme povedali, že cURL má zahrnúť predvolené hlavičky, čo je Content-Type: application/x-www-form-urlencoded
Voľba -X určuje metódu žiadosti HTTP, ktorá sa má použiť, v tomto prípade požiadavka HTTP POST.
cURL Zadajte typ obsahu
V niektorých prípadoch možno budeme chcieť pri odosielaní požiadavky špecifikovať [výslovne] typ obsahu. Entita Content-Type v hlavičke určuje typ média zdroja, ktorý odosielame. Typ média je tiež bežne známy ako typ MIME.
Ak sa chcete dozvedieť o typoch MIME, zvážte nižšie uvedený zdroj:
https://linkfy.to/IANA-MIME-Types
Na zadanie typu obsahu v požiadavke cURL môžeme použiť príznak -H. Pošlite nám napríklad MIME typ aplikácie/JSON.
zvinúť-XPOST-d {používateľské meno: linuxhint, heslo: heslo} -HTyp obsahu: aplikácia/json https://linuxhint.com/obmedzený/login.phpVyššie uvedené špecifikuje, že chceme odoslať objekt JSON na zadanú adresu URL. Môžete to použiť na čítanie hodnôt zo súboru JSON alebo ich odoslať ako nespracované.
Ako čítať údaje zo súboru
Predpokladajme, že chcete zadávať požiadavky v príkazovom riadku pomocou cURL, ale údaje na odoslanie máte uložené v súbore. Typ obsahu môžete použiť na zadanie typu média a potom odovzdanie cesty k súboru s údajmi. V tomto prípade budem ilustrovať pomocou objektu JSON.
Súbor JSON (data.json) obsahuje nasledujúce hodnoty:
{'užívateľské meno':'linuxhint',
'heslo':'heslo'
}
Na odoslanie týchto údajov zo súboru JSON môžeme použiť -d a potom odovzdať názov súboru podľa nasledujúceho príkazu:
zvinúť-XPOST-HTyp obsahu: aplikácia/json-d @data.json https://linuxhint.com/obmedzený/login.phpMôžete tiež použiť voľbu –data-binárne.
zvinúť-XPOST-HTyp obsahu: aplikácia/json--data-binárne @ /Domov/používateľ/data.json https://linuxhint.com/obmedzený/login.phpNa odoslanie údajov môžete použiť aj textový súbor; všetko, čo musíte zadať, je Content-Type ako text/plain.
Napríklad textový súbor (data.txt) obsahujúci nasledujúce hodnoty
používateľské meno= linuxhint&heslo= hesloPomocou príkazu cURL jednoducho odošlite požiadavku ako:
zvinúť-XPOST-HTyp obsahu: text/prostý-ddata.txt https://linuxhint.com/obmedzený/login.phpMôžete použiť aj iné typy súborov, ako napríklad XML, HTML a mnoho ďalších.
Záver
V tomto návode sme diskutovali o tom, ako vytvárať požiadavky POST a prenášať údaje v rôznych formátoch. Je dobré mať na pamäti, že cURL je nielen veľmi silný, ale aj veľmi flexibilný. Môže kombinovať zbierku možností v jednom príkaze a vytvárať tak výkonné požiadavky. Pre viac informácií odporúčam dokumentáciu cURL, pretože je dobre napísaná.
Ďakujeme, že čítate a zabavíte sa s cURL.