cURL je besplatan i uslužni program naredbenog retka otvorenog koda koji se koristi za prijenos podataka na udaljeni host ili s njega uz minimalnu interakciju korisnika. cURL radi s primarnim protokolima poput HTTP -a, FTP -a, SCP -a i SFTP -a.
Omogućuje korisnicima učitavanje i preuzimanje podataka bilo pomoću pojedinačnih naredbi ili bash skripti. Omogućuje i značajke kao što su autentifikacija korisnika, proxy tuneliranje, životopis za preuzimanje, prijenosi na temelju obrazaca, SSL certifikati i još mnogo toga. Može se sa sigurnošću reći da je cURL više od HTTP klijenta.
Ovaj vodič će vas provesti kroz jednu cURL funkcionalnost koja omogućuje korisnicima da izvode HTTP zahtjeve za objavom koristeći podatke datoteke.
Prije nego počnemo, dopustite mi da spomenem da ovo nije vodič za početnike u cURL -u; potreban vam je stupanj prethodnog znanja, posebno poznavanje mrežnih protokola, HTTP zahtjeva itd.
Prije nego što se upustimo u korištenje cURL -a za izvršavanje POST zahtjeva, prvo se postavimo.
Kako instalirati cURL
U većini slučajeva, prema zadanim postavkama cURL će biti instaliran u većim distribucijama Linuxa. Za potvrdu da imate cURL, koristite naredbu
curl –- pomoćAko dobijete grešku:
-bash: curl:naredbanije pronađeno
Morat ćete ga instalirati prije nego nastavite.
Za dovršetak instalacije upotrijebite zadani upravitelj paketa kako je prikazano u naredbama u nastavku:
sudo apt-get ažuriranjesudo apt-get installkovrča-i
Prije nego raspravimo kako POST podatke iz datoteke s cURL -om, dopustite mi da ukratko govorim o POST zahtjevu. Kao i obično, ako ste već upoznati s tim, slobodno preskočite naprijed; u suprotnom, ostanite tu.
cURL POST Zahtjev
Zahtjev za HTTP post jedna je od najpopularnijih metoda zahtjeva HTTP/HTTPS za slanje podataka udaljenom hostu radi stvaranja ili ažuriranja resursa.
Sada :
Molimo ne miješajte metodu s PUT; iako su prilično slične, imaju razlike.
Podaci poslani pomoću POST zahtjeva uglavnom se pohranjuju u tijelu zahtjeva HTTP zahtjeva.
Na primjer, razmotrite donji POST zahtjev koji šalje korisničko ime i lozinku, kao i njihove vrijednosti.
POST/ograničen/login.php HTTP/1.1Domaćin: linuxhint.com-Content-Type: application/x-www-form-urlencodedKorisničko ime= linuxhint&lozinka= lozinkaDa bismo poslali gornji POST zahtjev pomoću cURL -a, možemo odrediti naredbe kao:
kovrča-xPOST-d Korisničko ime= linuxhint&lozinka= lozinka https://linuxhint.com/ograničen/login.phpU gornjoj naredbi koristili smo -d opciju da kažemo cURL-u da uključi zadana zaglavlja, a to je Content-Type: application/x-www-form-urlencoded
Opcija -X navodi način HTTP zahtjeva za korištenje, u ovom slučaju HTTP POST zahtjeva.
cURL Odredite vrstu sadržaja
U nekim slučajevima možda bismo htjeli navesti [eksplicitno] Content-Type prilikom slanja zahtjeva. Entitet Content-Type u zaglavlju određuje vrstu medija resursa koji šaljemo. Vrsta medija također je općenito poznata kao MIME tip.
Ako želite saznati o MIME tipovima, razmotrite dolje navedene izvore:
https://linkfy.to/IANA-MIME-Types
Za specifikaciju Content -Type u cURL zahtjevu možemo upotrijebiti zastavicu -H. Na primjer, pošaljimo MIME vrstu aplikacije/JSON.
kovrča-XPOST-d {korisničko ime: linuxhint, lozinka: lozinka} -HContent-Type: application/json https://linuxhint.com/ograničen/login.phpGore navedeno navodi da želimo poslati JSON objekt na navedeni URL. Ovo možete koristiti za čitanje vrijednosti iz JSON datoteke ili slanje kao neobrađeno.
Kako čitati podatke iz datoteke
Pretpostavimo da želite upućivati zahtjeve u naredbeni redak pomoću cURL-a, ali imate podatke za slanje pohranjene u datoteci. Možete koristiti Content-Type za navođenje vrste medija, a zatim proslijediti putanju datoteke koja sadrži podatke. Za ovaj primjer ilustrirat ću pomoću JSON objekta.
JSON datoteka (data.json) sadrži sljedeće vrijednosti:
{'Korisničko ime':'linuxhint',
'lozinka':'lozinka'
}
Za slanje ovih podataka iz JSON datoteke možemo upotrijebiti -d, a zatim proslijediti naziv datoteke kao što je prikazano u naredbi ispod:
kovrča-XPOST-HContent-Type: application/json-d @data.json https://linuxhint.com/ograničen/login.phpTakođer možete koristiti –data-binary opciju.
kovrča-XPOST-HContent-Type: application/json--data-binary @ /Dom/korisnik/data.json https://linuxhint.com/ograničen/login.phpZa slanje podataka možete koristiti i tekstualnu datoteku; sve što trebate navesti je Content-Type kao text/plain.
Na primjer, tekstualna datoteka (data.txt) koja sadrži sljedeće vrijednosti
Korisničko ime= linuxhint&lozinka= lozinkaPomoću naredbe cURL jednostavno pošaljite zahtjev kao:
kovrča-XPOST-HVrsta sadržaja: tekst/običan-ddata.txt https://linuxhint.com/ograničen/login.phpMožete koristiti druge vrste datoteka koje možete koristiti, poput XML -a, HTML -a i mnogih drugih.
Zaključak
U ovom smo vodiču razgovarali o tome kako slati POST zahtjeve i prosljeđivati podatke u različitim formatima. Dobro je imati na umu da je cURL osim što je vrlo moćan, vrlo fleksibilan. Može kombinirati zbirku opcija u jednoj naredbi za stvaranje snažnih zahtjeva. Za više informacija preporučujem cURL dokumentaciju jer je dobro napisana.
Hvala vam na čitanju i zabavite se uz cURL.