Ostatnio trafił mi się „Mad girlfriend bug” – czyli sytuacja w której software mówi że wszystko jest OK ale widać, że 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ę, że 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śli twoje urządzenie pobiera coś z sieci najprawdopodobniej używa curla.
--fail
Tej flagi zabrakło w moim skrypcie. Odpowiada ona za to, że 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śli 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.
1 thought on “Przydatne flagi: curl”