-
Linux (Ubuntu):
apt install curl
-
macOS: a curl az operációs rendszerrel együtt települ a számítógépre, ezért nem szükséges külön telepíteni.
-
Windows: https://curl.se/windows/
-
A Windows 10 és 11 is tartalmazza ugyan a curl-t, de az egy korlátozott lehetőségekkel és képességekkel rendelkező build, a részleteket lásd itt. Például nincs HTTP/2 és HTTP/3 támogatás.
-
Meg kell jegyezni, hogy a curl a Git for Windows része is, tehát rendelkezésre áll a Git BASH-ban. Azonban ebből is hiányoznak bizonyos lehetőségek, mint például a HTTP/2 és HTTP/3 támogatás.
-
A PowerShell-ben a
curl
parancs egy alias egy olyan cmdlet-re, aminek semmi köze sincs a curl eszközhöz. Ezért a PowerShell-bencurl.exe
módon lehet a curl eszközre hivatkozni.
-
-
Telepítés a Miniconda révén (Linux, macOS, Windows):
conda install curl
A dokumentum parancsai Bash-ban történő végrehajtáshoz készültek, azonban a legtöbb parancs bármiféle módosítás nélkül működik a Windows parancssorban is. A többi parancs is könnyen a Windows parancssorra adaptálható a speciális karakterek levédéséhez a \
karakter helyett a ^
karakter használatával.
curl
curl --version
curl -V
Rendelkezésre álló parancssori opciók megjelenítése:
curl --help
curl -h
Kézikönyv megjelenítése:
curl --manual
curl -M
man curl
Dokumentáció: https://curl.se/docs/
Webhely: https://ip-api.com/
curl ip-api.com/json
curl http://ip-api.com/json
curl http://ip-api.com/json -O
curl http://ip-api.com/json -O -s
curl http://ip-api.com/json -o ip-api.json -s
curl http://ip-api.com/json -o ip-api.json -v -s
curl http://ip-api.com/json -o ip-api.json --dump-header ip-api.txt -s
curl http://ip-api.com/json -o ip-api.json --trace - | less
curl http://ip-api.com/json -o ip-api.json --trace-ascii - | less
Webhely: http://www.w3.org/
curl http://w3.org -v
curl http://w3.org -v --location -o w3.html
curl http://w3.org -v -L -o w3.html
URL rövidítő szolgáltatás: https://is.gd/
curl -s "https://is.gd/create.php?format=simple&url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP" > shorturl.txt
cat shorturl.txt
cat shorturl.txt | xargs curl -Is | grep -i ^Location
Webhely: http://www.gnu.org/
curl http://www.gnu.org/ -v -H Accept-Language:de -o gnu.de.html
curl http://www.gnu.org/ -v -H Accept-Language:fr -o gnu.fr.html
Webhely: https://hvg.hu/
curl https://hvg.hu/ --http1.1 -v --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1"
Lásd: https://www.whatismybrowser.com/guides/the-latest-user-agent/
Lásd: https://www.dbpedia.org/
curl https://dbpedia.org/resource/Grumpy_Cat -v
curl https://dbpedia.org/resource/Grumpy_Cat -v -H Accept:text/html
curl https://dbpedia.org/resource/Grumpy_Cat -v -H Accept:text/html -L -o Grumpy_Cat.html
curl https://dbpedia.org/resource/Grumpy_Cat -v -H Accept:application/json
curl https://dbpedia.org/resource/Grumpy_Cat -v -H Accept:application/json -L -O
Lásd: https://www.gnu.org/licenses/
curl https://www.gnu.org/licenses/gpl-3.0.\{html,md,txt\} -O
curl "https://www.gnu.org/licenses/gpl-3.0.{html,md,txt}" -O
curl "https://www.gnu.org/licenses/gpl-3.0.{html,md,txt}" -O -v
curl "https://www.gnu.org/licenses/gpl-3.0.{html,md,txt}" --create-dirs -o "licenses/gpl-3.0.#1"
Lásd: https://en.wikisource.org/wiki/The_Hound_of_the_Baskervilles_(Newnes,_1902)
curl https://en.wikisource.org/wiki/The_Hound_of_the_Baskervilles_\(Newnes,_1902\)/Chapter_[1-15] -O
curl https://en.wikisource.org/wiki/The_Hound_of_the_Baskervilles_\(Newnes,_1902\)/Chapter_[1-15] --create-dirs -o "The_Hound_of_the_Baskervilles/Chapter_#1.html"
curl https://www.gnu.org/licenses/gpl-3.0.txt -O https://www.apache.org/licenses/LICENSE-2.0.txt -O
curl --head https://dbpedia.org/resource/Hungary https://dbpedia.org/resource/Budapest
curl -H Accept:application/json https://dbpedia.org/resource/Hungary https://dbpedia.org/resource/Budapest -v
curl -H Accept:application/json https://dbpedia.org/resource/Hungary --next -H Accept:application/rdf+xml https://dbpedia.org/resource/Budapest -v
Lásd: https://download.bbbike.org/osm/bbbike/Budapest/
Szakítsuk meg az átvitelt a CTRL + C megnyomásával:
curl https://download.bbbike.org/osm/bbbike/Budapest/Budapest.osm.gz -O
Az átvitel folytatása:
curl https://download.bbbike.org/osm/bbbike/Budapest/Budapest.osm.gz -O -C -
Lásd: https://www.gnu.org/licenses/gpl-3.0.txt
Az első 100 bájt:
curl https://www.gnu.org/licenses/gpl-3.0.txt -r 0-99
curl https://www.gnu.org/licenses/gpl-3.0.txt -r 0-99 -v
Az utolsó 100 bájt:
curl https://www.gnu.org/licenses/gpl-3.0.txt -r -100
curl https://www.gnu.org/licenses/gpl-3.0.txt -r -100 -v
Az első és utolsó 100 bájt:
curl https://www.gnu.org/licenses/gpl-3.0.txt -r 0-99,-100
curl https://www.gnu.org/licenses/gpl-3.0.txt -r 0-99,-100 -v
Lásd: https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php
curl https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv -O --http1.1 -v
curl https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv -O --http1.1 -z all_hour.csv -v
sleep 60; curl https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv -O --http1.1 -z all_hour.csv -v
Webhely: https://httpbin.org/
A rendelkezésre álló lehetőségek:
-
GET metódus:
curl --get http://httpbin.org/get -d string=bazinga -d number=42 -v curl --get http://httpbin.org/get --data-urlencode "string=Hello, World!" -d number=42 -v
-
POST metódus az
application/x-www-form-urlencoded
média típussal:curl http://httpbin.org/post -d string=bazinga -d number=42 -v curl http://httpbin.org/post -d string=bazinga -d number=42 --trace-ascii -
-
POST metódus a
multipart/form-data
média típussal:curl http://httpbin.org/post -F string=bazinga -F number=42 -v curl http://httpbin.org/post -F string=bazinga -F number=42 --trace-ascii -
Webhely: https://blackwells.co.uk/
curl https://blackwells.co.uk/bookshop/search?keyword=sherlock+holmes\&pubDateFrom=2022\&pubDateTo=2023 -o search.html -v
curl --get https://blackwells.co.uk/bookshop/search -d keyword=sherlock+holmes -d pubDateFrom=2022 -d pubDateTo=2023 -o search.html -v
curl --get https://blackwells.co.uk/bookshop/search --data-urlencode keyword="sherlock holmes" -d pubDateFrom=2022 -d pubDateTo=2023 -o search.html -v
Webhely: https://www.base64encode.org/
curl https://www.base64encode.org/ --http1.1 -d input=Hello,\ World! -d charset=UTF-8 -d separator=lf -o output.html --trace-ascii trace.txt -s
Webhely: https://validator.nu/
curl --get https://validator.nu/ --data-urlencode "doc=https://www.w3.org/" -o output.html -v
Lásd: https://validator.nu/#file
curl https://www.w3.org/ -o index.html -s
curl https://validator.nu/ -F [email protected] -o output.html --trace-ascii trace.txt -s
Lásd: https://wttr.in/, https://github.com/chubin/wttr.in
curl http://wttr.in
curl http://wttr.in/:help
curl http://wttr.in/London
curl http://wttr.in/New+York
curl http://wttr.in/~Tower+Bridge
curl http://wttr.in/~Mount+Everest
curl http://wttr.in/ -H Accept-Language:en
curl http://wttr.in/ -H Accept-Language:de
curl http://wttr.in?lang=hu
curl http://wttr.in?lang=en
curl http://wttr.in?lang=de
curl http://hu.wttr.in
curl http://de.wttr.in
curl http://wttr.in/?format=1
curl http://wttr.in/?format=2
curl http://wttr.in/?format=3
curl http://wttr.in/?format=4
curl http://wttr.in/?format=j1
curl http://wttr.in/Budapest?format=v2
curl http://v2.wttr.in/Budapest
curl http://wttr.in/Moon
Lásd: https://validator.nu/ https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params
curl --get https://validator.nu/ --data-urlencode doc=https://whatwg.org/ -d out=json
curl --get https://validator.nu/ --data-urlencode doc=https://whatwg.org/ -d out=xml
curl --get https://validator.w3.org/nu/ --data-urlencode doc=https://www.w3.org/ -d out=xml
curl --get https://validator.w3.org/nu/ --data-urlencode doc=https://www.w3.org/ -d out=xml -d level=error
curl https://whatwg.org/ -o whatwg.html -s
curl https://validator.nu/?out=xml --data-binary @whatwg.html -H "Content-type: text/html; charset=utf-8" -v
Lásd: https://temp.sh/
echo "Hello, World!" > hello.txt
curl -F "[email protected]" https://temp.sh/upload
Lásd: https://curl.se/docs/http-cookies.html
rm -f cookies.txt
curl https://www.youtube.com/ -c cookies.txt -o /dev/null -v
cat cookies.txt
curl https://www.youtube.com/watch?v=pTBjHjRhx_Y -b cookies.txt -o /dev/null -v
Webhely: Rebrickable API
Swagger UI az API-hoz: https://rebrickable.com/api/v3/swagger/
Az API használatához API kulcs szükséges, mely itt generálható (bejelentkezés szükséges).
curl https://rebrickable.com/api/v3/lego/sets/60386-1/ -H "Authorization: key <your-api-key>" -v
curl https://rebrickable.com/api/v3/lego/sets/60386-1/minifigs/ -H "Authorization: key <your-api-key>" -v
curl https://rebrickable.com/api/v3/lego/sets/60386-1/parts/ -H "Authorization: key <your-api-key>" -v
Webhely: GitHub
curl https://api.github.com/user -v
curl https://api.github.com/user -v -u <username>
Lásd:
- https://docs.github.com/en/rest
- https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
Webhely: http://artscene.textfiles.com/vt100/
curl -s http://artscene.textfiles.com/vt100/globe.vt | pv -L4K -q
Webhely: http://ascii.live/ https://github.com/hugomd/ascii-live
curl http://ascii.live/forrest
curl ascii.live/list
curl ascii.live/rick
curl ascii.live/donut
Bizonyos webhelyek nem szeretik azokat a felhasználói ágenseket, melyek nem böngészők, és például 403 (Forbidden) állapotkódú válaszokat küldenek a curl által küldött kérésekre. Ekkor meg lehet próbálni a curl-impersonate programot, mely a curl egy olyan speciális összeállítása, mely meg tudja személyesíteni a főbb böngészőket, mint például a Firefox vagy a Chrome.
Például a
curl --head https://www.nasdaq.com/
parancs hibával terminál.
A szerver becsapásához használjuk helyette a
curl_chrome116 --head https://www.nasdaq.com/
parancsot, mely egy Chrome böngészőt személyesít meg.
Meg kell jegyezni, hogy a curl-impersonate Linux és macOS rendszerekre áll rendelkezésre.
Itt olvashatsz arról, hogy hogyan tudják blokkolni a webhelyek az olyan felhasználói ágenseket, melyek nem böngészők:
Sajnos a curl-impersonate nem mindig képes becsapni a webhelyeket. Például nem érhető el a programmal a Netflix webhely. Tehát például a
curl_chrome116 --head https://www.netflix.com/hu/
parancs végrehajtásának eredménye egy 403 (Forbidden) állapotkódú válasz.
Sok esetben a webhelyet hosztoló Cloudflare okozza a problémát. A Cloudflare Browser Integrity Check lehetősége szolgál a nem böngésző felhasználói ágensek kizárására, mely alapértelmezésben aktiválva van.