Заголовок и тело запроса эхо-завивки без отправки?

Можно ли с помощью инструмента командной строки curl echo, распечатать или просмотреть запрос, а не отправлять его? Что-то вроде варианта -n? Я хотел бы увидеть заголовок и тело запроса и все остальное, что включено. Есть ли что-нибудь еще, кроме заголовка и тела?


person ma11hew28    schedule 30.05.2011    source источник


Ответы (2)


Позвольте мне поддержать предложение использовать «nc» (netcat), чтобы увидеть все детали, не отправляя ничего куда-либо за пределы сайта.

Но вы также можете получить все подробности для любого запроса командной строки curl, используя -- trace или --trace-ascii, которые может сбрасывать все входящие и исходящие данные и запросы на проверку.

Эти параметры имеют дополнительное преимущество по сравнению с «nc», поскольку они могут отображать сведения о протоколе даже для операций HTTPS и с «настоящими» командными строками и т. д.

person Daniel Stenberg    schedule 30.05.2011
comment
--trace - для стандартного вывода. - person Ciro Santilli 新疆再教育营六四事件ۍ 06.05.2014

HTTP-запрос состоит из строки запроса, заголовков и тело.

curl, похоже, не имеет флага для "пробного запуска". В зависимости от ваших потребностей вы можете увидеть то, что хотите, используя netcat в качестве прокси:

$ nc -l localhost 8000 &
[1] 3150
$ curl --proxy localhost:8000 --silent --max-time 1 http://www.stackoverflow.com
GET http://www.stackoverflow.com HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
Host: www.stackoverflow.com
Accept: */*
Proxy-Connection: Keep-Alive

[1]+  Done                    nc -l localhost 8000
person Anders Lindahl    schedule 30.05.2011
comment
Как вы заставили netcat корректно завершать работу ([1]+ Done)? В моем тесте я обнаружил, что мне нужно Ctrl-C из него, затем fg, а затем Ctrl-D. Это работает, но кажется неуклюжим способом выхода из netcat. - person Randall; 21.12.2016
comment
Ах, похоже, что ключом был флаг --max-time 1, чтобы тайм-аут, с --silent, чтобы подавить сообщение о тайм-ауте. Я пропустил их обоих изначально. - person Randall; 21.12.2016
comment
...конечно, это не будет работать с HTTPS, он показывает только CONNECT www.stackoverflow.com:443 HTTP/1.1 и Proxy-Connection: Keep-Alive - person Edoardo; 19.04.2017