Echo curl request header & body without sending it?

ma11hew28 picture ma11hew28 · May 30, 2011 · Viewed 33.5k times · Source

With the curl command line tool, is it possible to echo, print, or view the request, and not send it? Sort of like a -n option? I would like to see the request header & body, and anything else that's included. Is there anything else that's sent besides header & body?

Answer

Anders Lindahl picture Anders Lindahl · May 30, 2011

A HTTP request is constructed with a request line, headers and a body.

curl does not seem to have a flag to do a "dry-run". Depending on your needs, you might be able to see what you want using netcat as a proxy:

$ 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