curl is een krachtig opdrachtregelprogramma om via de terminal met een webserver te communiceren. Vaak wordt het verward met het populaire wget-commando, omdat ze allebei inhoud kunnen uploaden en downloaden naar een server en ze ook platformonafhankelijk werken. Om de zaken duidelijk te maken, zijn hier de verschillen tussen wget en curl en enkele populaire curl-opdrachten die u moet weten om te beginnen.
curl vs wget
Op het eerste gezicht kunnen zowel curl als wget worden gezien als een hulpprogramma dat inhoud van de webservers kan opvragen en downloaden. Als je echter diep graaft, valt er veel te ontrafelen. curl ondersteunt veel meer protocollen, variërend van HTTPS, SFTP tot IMAP, POP3, enz. terwijl wget alleen HTTP, HTTPS en FTP ondersteunt.
Een ander groot verschil is dat wget recursieve download ondersteunt, terwijl curl dat niet doet. Dus wget zal alles downloaden, van de webpagina tot de pagina's waaraan het is gekoppeld, terwijl curl dat niet doet. Aan de andere kant is curl gebaseerd op de libcurl-bibliotheek die API's biedt. Daarom kan het gemakkelijk worden gebruikt in scripts via de opdrachtregel en in GUI-gebaseerde apps. U kunt curl zien als een uitgeklede webbrowser met opdrachtregel die inhoud van een webserver kan uploaden en downloaden.
Curl installeren ramen
curl is vooraf geïnstalleerd op Unix-gebaseerde of Unix-achtige besturingssystemen en kan daarom direct worden gebruikt op macOS. Het kan echter ook worden gebruikt op niet-Unix-systemen zoals Windows met behulp van een "libcurl" -bibliotheek.
In Windows hoeven we alleen maar het libcurl zip-bestand te downloaden en een paar wijzigingen aan te brengen om het bruikbaar te maken via de opdrachtprompt. Download eerst het libcurl zip-bestand voor uw Windows 32-bit of 64-bit dienovereenkomstig. Pak de inhoud uit in een map nadat u het bestand heeft gedownload. Voor de context is het volgende een screenshot van de uitgepakte inhoud van de libcurl-map.
Ga in de uitgepakte map naar het bak map en kopieer de volgende bestanden - "Curl.exe" en "curl-ca-bundle".
Maak een map met de naam "curl" binnen het "C:" -station en plak beide gekopieerde bestanden. Zodra u dit heeft gedaan, kunt u direct het curl-commando gebruiken wanneer u naar de map "C: \ curl" binnen de commandoregel navigeert.
Als alternatief, als je curl rechtstreeks vanuit de cmd wilt uitvoeren, zou ik aanraden om een omgevingsvariabele te maken. Ga hiervoor naar het menu Start en typ "Bewerk de variabelen van de systeemomgeving”En klik op de eerste zoekopdracht.
Klik in het pop-upvenster Systeemeigenschappen op de knop Omgevingsvariabelen onderaan.
Klik in het omgevingsvariabele-scherm op de knop Nieuw in de bovenste helft om een omgevingsvariabele van de gebruiker toe te voegen.
Voeg in het nieuwe gebruikersvariabele scherm het volgende item toe. Plaats dat, klik op Ok en vervolgens op Toepassen om de wijzigingen op te slaan.
Variabele naam: curl Variabele waarde: C: \ curl
Als u klaar bent, klikt u op Ok onder het menu Omgevingsvariabele om de wijzigingen op te slaan. Plaats dit, je zou de curl-opdracht rechtstreeks op de opdrachtprompt moeten kunnen gebruiken. Voer de volgende opdracht in om het te testen
curl --versie
Als alternatief kunt u ook schakel WSL voor Windows in en gebruik de Ubuntu bash-shell om curl-opdrachten uit te voeren vanuit bash op Windows.
Beste krulopdrachten en hoe deze te gebruiken
Voordat we met de opdrachten beginnen, moet u er rekening mee houden dat enkele aanhalingstekens niet werken in de Windows-opdrachtregel. Je zou ze moeten converteren naar dubbele aanhalingstekens. Voor de bash-shell zou het ook zoals gewoonlijk werken met de enkele aanhalingstekens.
1. Blader door HTML-code
Het meest basale hulpprogramma van curl is om door de HTML-code van een webpagina te bladeren. Om dat te doen, voeg je de curl-opdracht toe aan de web-URL van de webpagina.
krul https://example.com
Met deze opdracht wordt de uitvoer op de terminal weergegeven. U kunt de inhoud van het bestand ook downloaden door de "-O" -schakelaar vóór de URL op te geven. Hierdoor wordt het bestand op uw systeem opgeslagen met dezelfde externe bestandsnaam. Als de HTML-bestandsnaam op de server bijvoorbeeld "home.html" is, wordt deze ook lokaal opgeslagen als "home.html".
curl -O http://example.com/home.html
U kunt de gegevens ook opslaan met aangepaste bestandsnamen. Voeg daarvoor aan het commando een kleinere letter "-o" toe, gevolgd door de bestandsnaam.
curl http://example.com/home.html -o voorbeeldbestand.txt
U kunt ook meerdere bestanden downloaden door meerdere URL's voor externe bestanden op te geven.
2. Downloaden van bestanden met krul
Net als bij wget, kunt u bestanden downloaden met curl. U kunt de -o-schakelaar gebruiken en de bestandsnaam specificeren, anders wordt het bestand opgeslagen met de externe bestandsnaam.
curl -O http://example.com/linux.iso
Met de volgende opdracht wordt bijvoorbeeld de nieuwste versie van Linux mint van de webserver gedownload.
curl -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
U kunt ook "- #" of "–progress-bar" gebruiken om de voortgang in de vorm van hashes weer te geven.
3. Hervatten van mislukte download
Bovendien, als de download wordt onderbroken, kunt u doorgaan met de "-C -" schakelaar. Het commando ziet er als volgt uit.
curl -C http://example.com/linux.iso
Met de volgende opdracht wordt bijvoorbeeld de download hervat vanaf het laatste mislukte punt.
curl -C - -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
4. IP-informatie
U kunt de volgende curl-opdracht gebruiken om alle netwerkinformatie over een machine op te halen
krul ipinfo.io
Als alternatief, als u het IP-adres kent en u wilt andere details zoals de locatiecoördinaten, stad, tijdzone, enz., Kunt u de volgende variatie van het commando gebruiken.
krul ipinfo.io/14.141.173.170
5. Stuur e-mails
Omdat curl het SMTP-, POP3-protocol ondersteunt, kunt u het zelfs gebruiken om e-mails te verzenden. Hieronder ziet u een voorbeeld van het verzenden van een e-mail via Gmail.
Vervang het e-mailadres en wachtwoord dienovereenkomstig in de volgende opdracht.
curl --url "smtps: //smtp.gmail.com: 587" --ssl-reqd --mail-from "[email protected]" --mail-rcpt "[email protected]" --upload- bestand "C: \ mail.txt" --gebruiker "[email protected]: wachtwoord"
Zorg ervoor dat u toegang voor minder veilige apps inschakelt voor het Google-account
6. Woordenboek
Het dict-protocol van de libcurl kan worden gebruikt om gemakkelijk de betekenis van een woord te vinden. De bron van de betekenis is WordNet. Hieronder staat de opdracht om hetzelfde te doen.
curl dict: //dict.org/d: engels-woord
7. POST-opdrachten
U kunt POST-verzoeken naar een webserver sturen met behulp van een curl-opdracht. De syntaxis is als volgt
curl -X POST -F "naam = gebruikersnaam" -F "wachtwoord = wachtwoord" http://www.example.com
De POST-formuliergegevens kunnen ook worden verzonden in de vorm van een JSON-bestand. Gebruik de volgende opdracht om dat te doen.
curl -H "Content-Type: application / json" https://www.example.com
8. Converteer bestanden
Omdat curl meerdelige formuliergegevens ondersteunt, kunt u deze gebruiken om bestanden te uploaden en ze zelfs direct te laten converteren. Ik wil bijvoorbeeld dit HTML-bestand naar een PDF laten converteren. Daarom zal ik de Docverter API gebruiken om dit te doen. De Docverter API ondersteunt meerdere bestandsindelingen van HTML, Markdown en kan ze converteren naar Docx, PDF, ePub, enz.
Als alternatief kunt u ook de Google Drive API v3 gebruiken om Excel-spreadsheets, documenten, enz. Te converteren.
curl "http://c.docverter.com/convert" -F from = html -F to = pdf -F input_files [] = @ uw-bestandsnaam -o "output-file-name.pdf"
Afsluitende woorden
curl wordt voornamelijk gebruikt in programma's voor het delen van gegevens, bestanden en formulieren. Afgezien van de bovengenoemde opdracht, zijn er verschillende andere API's, combinaties of shell-scripts waarmee u curl kunt gebruiken. U kunt hier meer over weten in de GitHub-repo's of Stack Overflow. Laat het me weten in de onderstaande opmerkingen voor meer problemen of vragen over een curl-opdracht.
Lees ook: 14 beste leren om apps te coderen (Android en iOS)