Przydatne flagi: curl

detektywi.it 3 lat temu

Ostatnio trafił mi się „Mad girlfriend bug” – czyli sytuacja w której software mówi iż wszystko jest OK ale widać, iż nie. W moim przypadku był to skrypt w CI. Wszystkie kroki były zielone a jednak testy nie przechodziły. W końcu okazało się, iż winna jest jedna flaga, a raczej jej brak. W tym poście chciałbym przedstawić zestaw flag do curla, które zapobiegną podobnym przypadkom.

curl

curl to chyba najpopularniejszy klient HTTP na świecie. Jest dostępny zarówno jako niskopoziomowa biblioteka w C (libcurl) jak i narzędzie CLI. jeżeli twoje urządzenie pobiera coś z sieci najprawdopodobniej używa curla.

Today in the BMW help desk – aka my inbox. pic.twitter.com/QESmJ9X0gf

— Daniel Stenberg (@bagder) July 10, 2020

--fail

Tej flagi zabrakło w moim skrypcie. Odpowiada ona za to, iż w przypadku błędu serwera (kod >= 400) curl zwróci 22, inaczej dostaniemy 0 i wszystko będzie zachowywać się tak jakby nic się nie stało.

curl -f -XPOST https://detektywi.it curl: (22) The requested URL returned error: 406

--silent

Domyślnie curl pokaże nam pasek postępu oraz wypisze błędy połączenie o ile wystąpią. Jednak w większości przypadków w skryptach nie potrzebujemy tych informacji dlatego warto je wyłączyć aby nie zaśmiecać logów.

--show-error

Z jednej strony tryb cichy (--silent) jest przydatny z drugiej jeżeli pojawi się błąd to warto móc go przeczytać. Aby mimo wszystko wyświetlić błędy należy dodać tę flagę.

--location

Jeśli serwer zwraca przekierowanie, curl sam z siebie nie podąży za nim. Nazwa bierze się z nagłówka w którym znajduje się adres przekierowania.

curl detektywi.it # nic nie wyświetli bo nie skorzysta z przekierowania na https curl -l detektywi.it

--insecure

Jeśli z jakiegoś powodu próbujemy połączyć się z witryną której certyfikat nie jest zaufany to musimy użyć tej flagi.


curl --location --silent --show-error --fail === curl -lsSf

Oczywiście curl oferuje o wiele więcej opcji (obecnie 242) o których można poczytać w dokumentacji albo na blogu autora.

Friday (sometimes) means a new graph. Number of man pages in the curl project.

If you look closely, you can spot the man page overhaul I did in 2014 that introduced individual man pages for all libcurl options. pic.twitter.com/PAN0BzQ1ZE

— Daniel Stenberg (@bagder) September 17, 2021
Idź do oryginalnego materiału