10 cURL Użycie poleceń z przykładem w czasie rzeczywistym

Opublikowany: 2015-02-12

cURL to narzędzie wiersza poleceń do pobierania lub wysyłania danych przy użyciu składni adresu URL.

Jeśli pracujesz jako programista lub w funkcji wsparcia, musisz być świadomy użycia polecenia cURL do rozwiązywania problemów z aplikacjami internetowymi. cURL to wieloplatformowe narzędzie, którego można używać w systemach Windows, MAC i UNIX.

Poniżej znajdują się niektóre z najczęściej używanych składni wraz z przykładami, które mogą Ci pomóc.

Sprawdź, czy możesz połączyć się z adresem URL

Jeśli pracujesz w systemie UNIX i próbujesz połączyć się z zewnętrznym adresem URL, pierwszą rzeczą, którą chcesz zrobić, jest sprawdzenie, czy możesz uzyskać dostęp do adresu URL poprzez curl.

curl yoururl.com

Nie wyrzuci żadnych danych wyjściowych. Jeśli jednak serwer nie może się połączyć, otrzymasz błędy, takie jak niemożność rozwiązania hosta.

 [root@gf-lab tmp]# curl helloitdoesntexist.com curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error [root@gf-lab tmp]#

Zapisz wyjście URL/URI do pliku

Jeśli musisz zapisać zawartość adresu URL lub identyfikatora URI w określonym pliku, możesz użyć następującej składni

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

były:

 [root@gf-lab 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 [root@gf-lab tmp]#

Powyższy przykład zapisze całą zawartość z gf.dev do /tmp/gf.html

Pokaż nagłówek żądania i odpowiedzi

Jeśli masz problemy i chcesz sprawdzić poprawność, otrzymujesz oczekiwany nagłówek żądania i odpowiedzi.

 curl -v yoururl.com

Były:

 [root@gf-lab tmp]# curl -v https://geekflare.com * About to connect() to geekflare.com port 443 (#0) * Trying 104.25.134.107... * Connected to geekflare.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: geekflare.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=.geekflare.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://geekflare.com/wp-json/>; rel="https://api.w.org/" < Link: <https://geekflare.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 <

Pobieraj z limitem

Jeśli pracujesz nad optymalizacją i chcesz sprawdzić, ile czasu zajmuje pobieranie z określoną prędkością, możesz:-

 curl –-limit-rate 2000B

Były:

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

Korzystanie z serwera proxy do połączenia

Bardzo przydatne, jeśli pracujesz na serwerze DMZ, gdzie musisz połączyć się ze światem zewnętrznym za pomocą proxy.

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

Testuj adres URL z wstrzykiwaniem nagłówka

Możesz użyć curl, wstawiając nagłówek z danymi, aby przetestować lub rozwiązać konkretny problem. Zobaczmy następujący przykład, aby zażądać z Content-Type.

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

Wykonując powyższe, prosisz curl o przekazanie Content-Type jako application/json w nagłówku żądania.

Wyświetlaj tylko nagłówek odpowiedzi

Jeśli rozwiązujesz problemy i chcesz szybko sprawdzić nagłówek odpowiedzi, możesz użyć następującej składni.

 curl --head http://yoururl.com

Były:

 [root@gf-lab 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 [root@gf-lab tmp]#

Połącz adres URL HTTPS/SSL i zignoruj ​​wszelkie błędy certyfikatu SSL

Podczas próby uzyskania dostępu do zabezpieczonego certyfikatem SSL/TLS adresu URL i jeśli ma on niewłaściwy certyfikat lub CN nie pasuje, otrzymasz następujący błąd.

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

Dobra wiadomość, możesz poinstruować cURL, aby zignorował błąd certyfikatu za pomocą flagi --insecure .

 curl --insecure https://yoururl.com

Połącz przy użyciu określonego protokołu (SSL/TLS)

Bardzo przydatne do sprawdzenia, czy określony adres URL może uzgadniać z określonym protokołem SSL/TLS.

Aby połączyć się za pomocą SSL v3

 curl --sslv3 https://yoururl.com

i dla różnych wersji 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

Pobierz plik z serwera FTP

Możesz również użyć curl do pobrania pliku, podając swoją nazwę użytkownika i hasło.

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

Zawsze możesz użyć „ -v ” z dowolną składnią, aby drukować w trybie pełnym.

Korzystanie z nagłówka hosta

Nagłówek hosta jest przydatny do testowania docelowego adresu URL przez IP, gdy żądana treść jest dostępna tylko wtedy, gdy pasuje nagłówek hosta. Lub, jeśli chcesz przetestować aplikację przy użyciu adresu IP/URL modułu równoważenia obciążenia.

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

Co powiesz na korzystanie z cURL online?

Tak, jest to możliwe dzięki następującym narzędziom. Możesz uruchomić cURL zdalnie.

Online CURL – lekkie narzędzie do pobierania adresu URL online i możliwość dodania następujących opcji.

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

Kreator wiersza poleceń cURL – ten jest inny. Pomaga zbudować polecenie curl, w którym możesz wprowadzać informacje w ładnym interfejsie użytkownika, a na dole otrzymasz polecenie cURL.

budowniczy loków

cURL to przydatne narzędzie do rozwiązywania problemów z łącznością w czasie rzeczywistym i mam nadzieję, że powyższe informacje ci pomogą. Jeśli chcesz dowiedzieć się więcej, polecam kurs online Linux Command Line Basics.