-D, --dump-header <file>
Write the protocol headers to the specified file.
This option is handy to use when you want to store the headers
that a HTTP site sends to you. Cookies from the headers could
then be read in a second curl invocation by using the -b,
--cookie option! The -c, --cookie-jar option is however a better
way to store cookies.
i
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
i
-L/--location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response
code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested
pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different
host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to
follow by using the --max-redirs option.
When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP
response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified
method.
ze strony podręcznika. więc
curl -sSL -D - www.acooke.org -o /dev/null
podąża za przekierowaniami, zrzuca nagłówki na standardowe wyjście i wysyła dane do / dev / null (to GET, nie POST, ale możesz zrobić to samo z POST - po prostu dodaj dowolną opcję, której już używasz dla danych POST)
zwróć uwagę na -
to, -D
co oznacza, że wyjściowy „plik” jest stdout.
curl -s -D - http://yahoo.com -o nul
-D
przyjmuje argument, który mówi, dokąd powinien iść wynik. pojedyncza kreska oznacza, że powinna ona przejść do standardowego wyjścia.Pozostałe odpowiedzi wymagają pobrania treści odpowiedzi. Istnieje jednak sposób na wysłanie żądania POST, które pobierze tylko nagłówek:
-I
Sama wykonuje żądanie HEAD, które mogą zostać zastąpione przez-X POST
przeprowadzić post (lub jakiegokolwiek innego) wniosek i jeszcze dostać tylko dane nagłówka.źródło
GET
żądanie i nie pobiera całej treści odpowiedzi (a przynajmniej jej nie wysyła).-s
Flaga jest ani konieczne.GET
zePOST
w powyższym poleceniu i będzie działać zgodnie z oczekiwaniami.or any other
jest tam kluczem.POST
jakieś dane. Curl mówi:Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
-X HEAD
nie ma tutaj niezawodnego rozwiązania.Poniższe polecenie wyświetla dodatkowe informacje
Możesz poprosić serwer o wysłanie tylko HEAD zamiast pełnej odpowiedzi
Note:
W niektórych przypadkach serwer może wysyłać różne nagłówki dla postu i HEAD. Ale w prawie wszystkich przypadkach nagłówki są takie same.źródło
-X, --request
,-X HEAD
nadal otrzymuję „ masę danych”, ale jest taka,-I, --head
która powinna skutkować tym, czego oczekujesz.-X HEAD
i-I
są dokładnie równoważne.-X HEAD
polega na tym, że serwer może reagować inaczej, ponieważ teraz otrzymujeHEAD
żądanie zamiastGET
(lub cokolwiek poprzedniej prośby)Warning: Setting custom HTTP method to HEAD with -X/--request may not work the Warning: way you want. Consider using -I/--head instead.
W przypadku ciał o długim czasie reakcji (i różnych innych podobnych sytuacjach) rozwiązaniem, którego używam, jest zawsze połączenie z rurką
less
, więclub
wykona robotę.
źródło
HEAD
żądanie, na które wiele serwerów reaguje inaczej. drugi wydajeGET
zapytanie, które bardziej przypomina to, czego tutaj szukamy.Może to trochę ekstremalne, ale używam tej super krótkiej wersji:
Wyjaśnienie:
-v
wydrukuj informacje debugowania (które zawierają nagłówki)-o.
wyślij dane strony internetowej (którą chcemy zignorować) do określonego pliku,.
w tym przypadku, który jest katalogiem i jest niepoprawnym miejscem docelowym i powoduje zignorowanie danych wyjściowych.-s
bez paska postępu, bez informacji o błędach (w przeciwnym razie zobaczyszWarning: Failed to create the file .: Is a directory
)ostrzeżenie: wynik zawsze zawodzi (pod względem kodu błędu, jeśli jest osiągalny lub nie). Nie używaj, powiedzmy, instrukcji warunkowych w skryptach powłoki ...
źródło
-o.
zamiast-o /dev/null
?-o.
jest używany w przeciwieństwie-o /dev/null
do zwięzłościcurl -svo. <url> && echo foo
nie drukujefoo
bo-o.
makecurl
zwróci niezerowy (= błąd) kod:curl: (23) Failed writing body
.O wiele łatwiej - tego używam, aby uniknąć śledzenia krótkich linków - jest to:
… Która również podąża za linkami .
źródło
Podczas gdy inne odpowiedzi nie działały dla mnie we wszystkich sytuacjach, najlepsze rozwiązanie, jakie mogłem znaleźć (również z nimi współpracując
POST
), wzięte stąd :curl -vs 'https://some-site.com' 1> /dev/null
źródło
headcurl.cmd (wersja dla systemu Windows)
-s
,-S
,-k
,-v
(chodzi o rozwiązywanie problemów, prawda?),%*
oznacza [przekaż wszystkie parametry do tego skryptu] (cóż ( https://stackoverflow.com/a/980372/444255 ), cóż, zwykle jest to tylko jeden parametr: testowany adres URLprzykład w świecie rzeczywistym (dotyczący rozwiązywania problemów z serwerem proxy):
Wersja Linux
dla twojego
.bash_aliases
/.bash_rc
:źródło
-X POST
do parametrów przekazywania, jeśli chcesz GET, użyj GET (tj. Domyślnie), ponieważ odpowiedzi mogą się różnić. - O ile nie robisz intensywnego curlingu w skryptach produkcyjnych (nie do diagnozowania i opracowywania), nie obchodzi mnie trochę przepustowości.