Przydatne flagi: curl

Curl in Mr. Robot

Ostatnio trafił mi się „Mad girlfriedn 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

Leave a Reply