10 Použití příkazu cURL s příkladem v reálném čase

cURL je nástroj příkazového řádku pro získávání nebo odesílání dat pomocí syntaxe URL.

Pokud pracujete jako vývojář nebo ve funkci podpory, musíte si být vědomi použití příkazu cURL k odstraňování problémů s webovými aplikacemi. cURL je multiplatformní nástroj, který můžete použít na Windows, MAC a UNIX.

Níže jsou uvedeny některé z nejpoužívanějších syntaxí s příkladem, který vám pomůže.

Ověřte, zda se můžete připojit k adrese URL

Pokud pracujete na systému UNIX a pokoušíte se připojit externí URL, první věc, kterou chcete udělat, je zkontrolovat, zda máte přístup k URL přes curl.

curl yoururl.com

Nevyvolá žádný výstup. Pokud se však server nemůže připojit, zobrazí se chyby, jako například nemohl vyřešit hostitele.

[[email protected] tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[[email protected] tmp]#

Uložte výstup URL/URI do souboru

Pokud musíte uložit adresu URL nebo obsah URI do určitého souboru, můžete použít následující syntaxi

curl https://yoururl.com > yoururl.html

např.:

[[email protected] tmp]# curl https://gf.dev > /tmp/gfhtml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18557    0 18557    0     0  72565      0 --:--:-- --:--:-- --:--:-- 72772
[[email protected] tmp]#

Výše uvedený příklad uloží veškerý obsah z gf.dev do /tmp/gf.html

  Najděte si náhodný film nebo televizní pořad, který chcete sledovat

Zobrazit záhlaví požadavku a odpovědi

Pokud máte problémy a chtěli byste to ověřit, dostáváte očekávanou hlavičku požadavku a odpovědi.

curl -v yoururl.com

Příklad:

[[email protected] tmp]# curl -v https://etechblog.cz.com
* About to connect() to etechblog.cz.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to etechblog.cz.com (104.25.134.107) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
* 	start date: Nov 07 00:00:00 2019 GMT
* 	expire date: May 15 23:59:59 2020 GMT
* 	common name: ssl371609.cloudflaressl.com
* 	issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: etechblog.cz.com
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Sat, 09 Nov 2019 19:41:37 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.etechblog.cz.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://etechblog.cz.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://etechblog.cz.com/>; rel=shortlink
< X-SRCache-Fetch-Status: HIT
< X-SRCache-Store-Status: BYPASS
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: EasyEngine v4.0.12
< Via: 1.1 google
< CF-Cache-Status: DYNAMIC
< Strict-Transport-Security: max-age=15552000; preload
< X-Content-Type-Options: nosniff
< Alt-Svc: h3-23=":443"; ma=86400
< Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< Server: cloudflare
< CF-RAY: 533243e4bcd4bbf4-LHR
<

Stahujte za omezenou sazbu

Pokud pracujete na optimalizaci a chtěli byste zjistit, kolik času zabere stahování konkrétní rychlostí, můžete:-

curl –-limit-rate 2000B

Příklad:

curl –-limit-rate 2000B https://gf.dev

Připojení pomocí proxy

Velmi užitečné, pokud pracujete na serveru DMZ, kde se potřebujete připojit k vnějšímu světu pomocí proxy.

curl --proxy yourproxy:port https://yoururl.com

Curling můžete použít vložením záhlaví s vašimi daty k testování nebo řešení konkrétního problému. Podívejme se na následující příklad pro vyžádání pomocí Content-Type.

curl --header 'Content-Type: application/json' http://yoururl.com

Tím, že to uděláte výše, žádáte curl, aby předal Content-Type jako application/json v hlavičce požadavku.

  Jak snadno převést obrázky HEIC na JPG na Macu

Pokud řešíte nějaké problémy a chcete rychle zkontrolovat hlavičku odpovědi, můžete použít následující syntaxi.

curl --head http://yoururl.com

Příklad:

[[email protected] tmp]# curl --head https://chandan.io
HTTP/1.1 200 OK
Date: Sat, 09 Nov 2019 19:51:23 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly
X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA
Expires: Sat, 09 Nov 2019 20:51:23 GMT
Cache-Control: public, max-age=3600
Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT
x-goog-generation: 1533552347482034
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 24620
x-goog-hash: crc32c=DpDPAQ==
x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA==
x-goog-storage-class: MULTI_REGIONAL
Accept-Ranges: bytes
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 53325234dc2fbb9a-LHR

[[email protected] tmp]#

Připojte URL HTTPS/SSL a ignorujte chyby certifikátu SSL

Když se pokusíte o přístup k adrese URL zabezpečené certifikátem SSL/TLS a pokud má nesprávný certifikát nebo se CN neshoduje, zobrazí se následující chyba.

curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

Dobrá zpráva, můžete dát cURL pokyn, aby ignoroval chybu certifikátu s příznakem –insecure.

curl --insecure https://yoururl.com

Připojení pomocí specifického protokolu (SSL/TLS)

Velmi užitečné pro otestování, zda konkrétní URL může navázat spojení s konkrétním protokolem SSL/TLS.

  Ztratili jste v Outlooku kartu Vyhledávání? Zde je návod, jak jej obnovit

Chcete-li se připojit pomocí SSL v3

curl --sslv3 https://yoururl.com

a pro různé verze TLS

curl --tlsv1 https://example.com
curl --tlsv1.0 https://example.com
curl --tlsv1.1 https://example.com
curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com

Stáhnout soubor z FTP serveru

Ke stažení souboru můžete použít také curl zadáním svého uživatelského jména a hesla.

curl -u user:password -O ftp://ftpurl/style.css

Pro tisk v podrobném režimu můžete vždy použít „-v“ s jakoukoli syntaxí.

Záhlaví hostitele je užitečné pro testování cílové adresy URL přes IP, když je požadovaný obsah dostupný pouze tehdy, když se záhlaví hostitele shoduje. Nebo, pokud chcete otestovat aplikaci pomocí load balanceru IP/URL.

curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

Co takhle použít cURL online?

Ano, to je možné pomocí následujících nástrojů. CURL můžete spustit vzdáleně.

Online CURL – jednoduchý nástroj pro načtení URL online a možnost přidat následující možnosti.

--connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent
 

Tvůrce příkazového řádku cURL – tenhle je jiný. Pomůže vám vytvořit příkaz curl, kde můžete zadávat informace v pěkném uživatelském rozhraní, a ve spodní části získáte příkaz cURL.

cURL je užitečný nástroj pro řešení problémů s připojením v reálném čase a doufám, že vám výše uvedené pomůže. Pokud se chcete dozvědět více, pak doporučuji Základy příkazového řádku Linuxu online kurz.