Заголовок и тело запроса Echo curl без его отправки?

#curl #http-headers #request #httprequest #echo

#curl #http-заголовки #запрос #httprequest #echo

Вопрос:

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

Ответ №1:

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

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

 $ nc -l localhost 8000 amp;
[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
  

Комментарии:

1. Как вы добились, чтобы netcat завершался чисто ( [1] Done )? В моем тесте я обнаружил, что мне нужно Ctrl-C выйти из этого, затем fg это, а затем Ctrl-D . Это работает, но кажется неуклюжим способом выхода из netcat.

2. А — похоже, ключом был --max-time 1 флаг для тайм-аута с --silent для подавления сообщения о тайм-ауте. Я изначально опустил их оба.

3. … конечно, это не будет работать с HTTPS, оно показывает только CONNECT www.stackoverflow.com:443 HTTP/1.1 и прокси-соединение: Keep-Alive

Ответ №2:

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

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

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

Комментарии:

1. --trace - для стандартного вывода.