cURL je brezplačen in odprtokodni pripomoček za ukazno vrstico, ki se uporablja za prenos podatkov na oddaljeni gostitelj ali z njega z minimalno interakcijo uporabnika. cURL deluje s primarnimi protokoli, kot so HTTP, FTP, SCP in SFTP.
Uporabnikom omogoča nalaganje in prenos podatkov z enim ukazom ali bash skripti. Ponuja tudi funkcije, kot so avtentikacija uporabnika, tuneliranje posredniškega strežnika, življenjepis prenosov, nalaganja na obrazcih, potrdila SSL in še veliko več. Lahko rečemo, da je cURL več kot le odjemalec HTTP.
Ta vadnica vas bo vodila skozi eno funkcijo cURL, ki uporabnikom omogoča izvajanje zahtev po objavah HTTP z uporabo datotek.
Preden začnemo, naj omenim, da to ni začetniški vodnik po curlu; potrebujete določeno stopnjo predhodnega znanja, zlasti poznavanje omrežnih protokolov, zahtev HTTP in še več.
Preden se lahko poglobimo v uporabo curl-a za izvajanje zahtev POST, najprej pojdimo na nastavitve.
Kako namestiti cURL
V večini primerov je privzeto v večjih distribucijah Linuxa nameščen cURL. Če želite potrditi, da imate curl, uporabite ukaz
curl --pomočČe se prikaže napaka:
-bash: curl: ukaza ni mogoče najtiPred nadaljevanjem ga boste morali namestiti.
Uporabite privzeti upravitelj paketov, da dokončate namestitev, kot je prikazano v spodnjih ukazih:
posodobitev sudo apt-getsudo apt-get namestite curl -y
Preden razpravljam o tem, kako POST podatke iz datoteke z datoteko cURL, dovolite, da na kratko spregovorim o zahtevi POST. Kot običajno, če ste s tem že seznanjeni, lahko preskočite naprej; v nasprotnem primeru se držite.
Zahteva za curl post
Zahteva za objavo HTTP je ena izmed najbolj priljubljenih metod zahteve HTTP / HTTPS, ki se uporablja za pošiljanje podatkov oddaljenemu gostitelju za ustvarjanje ali posodobitev vira.
Zdaj:
Ne zamenjujte metode s PUT; čeprav so si precej podobni, imajo razlike.
Podatki, poslani z zahtevo POST, so v glavnem shranjeni v telesu zahteve zahteve HTTP.
Upoštevajte na primer spodnjo zahtevo POST, ki pošilja uporabniško ime in geslo ter njihove vrednosti.
POST / omejeno / prijava.php HTTP / 1.1 Gostitelj: linuxhint.com Content-Type: application / x-www-form-urlencoded uporabniško ime = linuxhint & password = gesloČe želite poslati zgornjo zahtevo POST s pomočjo curl, lahko ukaze določimo kot:
curl -x POST -d “uporabniško ime = linuxhint & geslo = geslo” https: // linuxhint.com / omejeno / prijava.phpV zgornjem ukazu smo z možnostjo -d povedali cURL, da vključi privzete glave, ki je Content-Type: application / x-www-form-urlencoded
Možnost -X določa način zahteve HTTP za uporabo, v tem primeru zahteve HTTP POST.
cURL Določite vrsto vsebine
V nekaterih primerih bomo morda želeli [izrecno] določiti vrsto vsebine pri pošiljanju zahteve. Entiteta Content-Type v glavi določa vrsto medija vira, ki ga pošiljamo. Vrsta medija je splošno znana tudi kot vrsta MIME.
Če želite izvedeti več o vrstah MIME, si oglejte spodnji vir:
https: // linkfy.do / IANA-MIME-Vrste
Za določitev vrste vsebine v zahtevi za curl lahko uporabimo zastavico -H. Pošljimo na primer vrsto aplikacije MIME / JSON.
curl -X POST -d “uporabniško ime”: “linuxhint”, “geslo”: “geslo” -H “Content-Type: application / json” https: // linuxhint.com / omejeno / prijava.phpZgornje določa, da želimo poslati objekt JSON na navedeni URL. To lahko uporabite za branje vrednosti iz datoteke JSON ali pošiljanje kot surovo.
Kako brati podatke iz datoteke
Recimo, da želite v ukazni vrstici zahtevati uporabo cURL, vendar imate podatke, ki jih želite poslati, shranjene v datoteki. Z vrsto vsebine lahko določite vrsto medija in nato posredujete pot datoteke, ki vsebuje podatke. Za ta primer bom ponazoril z uporabo predmeta JSON.
Datoteka JSON (podatki.json) vsebuje naslednje vrednosti:
"username": "linuxhint",
"password": "geslo"
Za pošiljanje teh podatkov iz datoteke JSON lahko uporabimo -d in nato posredujemo ime datoteke, kot je prikazano v spodnjem ukazu:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / omejeno / prijava.phpUporabite lahko tudi -data-binarno možnost.
curl -X POST -H “Content-Type: application / json” --data-binary “@ / home / user / data.json ”https: // linuxhint.com / omejeno / prijava.phpZa pošiljanje podatkov lahko uporabite tudi besedilno datoteko; vse, kar morate določiti, je Content-Type kot besedilo / navaden.
Na primer besedilna datoteka (data.txt), ki vsebuje naslednje vrednosti
uporabniško ime = linuxhint & password = gesloZ ukazom cURL preprosto pošljite zahtevo kot:
curl -X POST -H »Content-Type: text / plain« -d «podatki.txt ”https: // linuxhint.com / omejeno / prijava.phpUporabite lahko druge vrste datotek, kot so XML, HTML in še veliko več.
Zaključek
V tej vadnici smo razpravljali o tem, kako narediti zahteve POST in posredovati podatke v različnih oblikah. Dobro je vedeti, da je cURL poleg tega, da je zelo zmogljiv, tudi zelo prilagodljiv. V enem samem ukazu lahko združi zbirko možnosti za ustvarjanje močnih zahtev. Za več informacij priporočam dokumentacijo cURL, saj je dobro napisana.
https: // curl.se / docs /
Hvala za branje in se zabavajte s curlom.