Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting only response header from HTTP POST using cURL

One can request only the headers using HTTP HEAD, as option -I in curl(1).

$ curl -I / 

Lengthy HTML response bodies are a pain to get in command-line, so I'd like to get only the header as feedback for my POST requests. However, HEAD and POST are two different methods.

How do I get cURL to display only response headers to a POST request?

like image 334
Jonathan Allard Avatar asked Apr 08 '12 03:04

Jonathan Allard


People also ask

How do I get response headers in curl?

We can use curl -v or curl -verbose to display the request headers and response headers in the cURL command. The > lines are request headers . The < lines are response headers .

What is the correct command to get only the headers for a given URL using curl command?

The -I option is used to tell curl to only fetch the HTTP headers ( HEAD method) of a particular page or resource.

Which curl option is used to set an HTTP header to a specific?

curl command provides the -H option in order to provide HTTP headers.

Does curl use Get or Post?

GET is used by default with curl requests. If you use curl to make HTTP requests other than GET, you need to specify the HTTP method.


1 Answers

-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. 

and

-S, --show-error        When used with -s, --silent, it makes curl show an error message if it fails. 

and

-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. 

from the man page. so

curl -sSL -D - www.acooke.org -o /dev/null 

follows redirects, dumps the headers to stdout and sends the data to /dev/null (that's a GET, not a POST, but you can do the same thing with a POST - just add whatever option you're already using for POSTing data)

note the - after the -D which indicates that the output "file" is stdout.

like image 191
andrew cooke Avatar answered Sep 20 '22 22:09

andrew cooke