cURL je besplatni uslužni program naredbenog retka otvorenog koda koji se koristi za prijenos podataka na ili s udaljenog hosta uz minimalnu interakciju korisnika. cURL radi s primarnim protokolima kao što su HTTP, FTP, SCP i SFTP.
Omogućuje korisnicima prijenos i preuzimanje podataka pomoću pojedinačnih naredbi ili bash skripti. Također pruža značajke kao što su provjera autentičnosti korisnika, tuneliranje proxyja, životopis preuzimanja, prijenosi temeljeni na obrascima, SSL certifikati i još mnogo toga. Sigurno je reći da je cURL više od HTTP klijenta.
Ovaj vodič vodit će vas kroz jednu funkciju curL koja korisnicima omogućuje izvršavanje HTTP zahtjeva za postom koristeći podatke o datotekama.
Prije nego što započnemo, spomenut ću da ovo nije početnički vodič za curL; potreban vam je stupanj prethodne stručnosti, posebno znanje mrežnih protokola, HTTP zahtjeva i još mnogo toga.
Prije nego što krenemo u upotrebu curl-a za izvršavanje POST zahtjeva, prvo napravimo postavke.
Kako instalirati curl
U većini slučajeva zadani će vam biti cURL instaliran u glavnim Linux distribucijama. Da biste potvrdili da imate curl, upotrijebite naredbu
uvojiti se - pomoćAko dobijete pogrešku:
-bash: curl: naredba nije pronađenaMorat ćete ga instalirati prije nastavka.
Upotrijebite zadani upravitelj paketa da biste dovršili instalaciju kao što je prikazano u naredbama u nastavku:
sudo apt-get ažuriranjesudo apt-get instalirati curl -y
Prije rasprave o tome kako POSTATI podatke iz datoteke s cURL-om, dopustite mi da ukratko razgovaram o POST zahtjevu. Kao i obično, ako vam je ovo već poznato, možete slobodno preskočiti; inače se držite.
Zahtjev za curL POST
Zahtjev za HTTP postom jedna je od najpopularnijih metoda zahtjeva za HTTP / HTTPS koja se koristi za slanje podataka udaljenom hostu radi stvaranja ili ažuriranja resursa.
Sada:
Molimo nemojte brkati metodu s PUT-om; iako su prilično slični, oni imaju svoje 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čeno / prijava.php HTTP / 1.1 Domaćin: linuxhint.com Content-Type: application / x-www-form-urlencoded korisničko ime = linuxhint & password = lozinkaDa bismo poslali gornji POST zahtjev pomoću curla, naredbe možemo odrediti kao:
curl -x POST -d “korisničko ime = linuxhint & lozinka = lozinka” https: // linuxhint.com / ograničena / prijava.phpU gornjoj naredbi koristili smo opciju -d da kažemo cURL-u da uključi zadana zaglavlja, a to je Content-Type: application / x-www-form-urlencoded
Opcija -X određuje metodu HTTP zahtjeva za upotrebu, u ovom slučaju, HTTP POST zahtjeva.
cURL Navedite vrstu sadržaja
U nekim ćemo slučajevima možda htjeti [eksplicitno] odrediti vrstu sadržaja prilikom slanja zahtjeva. Entitet Content-Type u zaglavlju određuje vrstu medija resursa koji šaljemo. Vrsta medija je također poznata kao MIME vrsta.
Ako želite saznati više o MIME vrstama, razmotrite dolje navedeni resurs:
https: // linkfy.u / IANA-MIME-vrste
Da bismo odredili vrstu sadržaja u zahtjevu za curL, možemo upotrijebiti zastavicu -H. Na primjer, pošaljite MIME vrstu aplikacije / JSON.
curl -X POST -d "korisničko ime": "linuxhint", "lozinka": "lozinka" -H "Tip sadržaja: aplikacija / json" https: // linuxhint.com / ograničena / prijava.phpGore navedeno određuje da želimo poslati JSON objekt na navedeni URL. To možete koristiti za čitanje vrijednosti iz JSON datoteke ili slanje kao neobrađene.
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 upotrijebiti Content-Type da odredite vrstu medija, a zatim proslijedite put datoteke koji sadrži podatke. U ovom primjeru ilustrirat ću pomoću JSON objekta.
JSON datoteka (podaci.json) sadrži sljedeće vrijednosti:
"username": "linuxhint",
"password": "lozinka"
Da bismo te podatke poslali iz JSON datoteke, možemo upotrijebiti -d i zatim proslijediti naziv datoteke kao što je prikazano u naredbi ispod:
curl -X POST -H “Content-Type: application / json” -d “@data.json ”https: // linuxhint.com / ograničena / prijava.phpMožete koristiti i -data-binarnu opciju.
curl -X POST -H “Content-Type: application / json” --data-binarni “@ / home / user / data.json ”https: // linuxhint.com / ograničena / prijava.phpZa slanje podataka možete koristiti i tekstualnu datoteku; sve što trebate navesti je Content-Type kao tekst / običan.
Na primjer, tekstualna datoteka (podaci.txt) koji sadrži sljedeće vrijednosti
korisničko ime = linuxhint & password = lozinkaKoristeći naredbu cURL, jednostavno pošaljite zahtjev kao:
curl -X POST -H "Content-Type: text / plain" -d "podaci.txt ”https: // linuxhint.com / ograničena / prijava.phpMožete koristiti druge vrste datoteka koje možete koristiti, poput XML-a, HTML-a i mnogih drugih.
Zaključak
U ovom uputstvu raspravljali smo o načinu izrade POST zahtjeva i prosljeđivanju podataka u različitim formatima. Dobro je imati na umu da je, osim što je vrlo moćan, i curL vrlo fleksibilan. Može kombinirati zbirku opcija u jednoj naredbi za stvaranje moćnih zahtjeva. Za više informacija preporučujem cURL dokumentaciju jer je dobro napisana.
https: // curl.se / dokumenti /
Hvala vam što čitate i zabavite se uz curL.