Getting only response header from HTTP POST using curl

curl show response headers and body
curl get response headers php
curl display response headers
curl get response code
curl get headers
curl print request headers
curl post
get headers using curl php

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?

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

How to use curl, Those examples involve working with HTTP, the most popular protocol. Perform an HTTP GET request; Get the HTTP response headers; Only� cURL is an extremely useful command line tool for making HTTP requests and can be used for diagnosing errors, downloading content and so. But what if you just want to see the response headers to see, for example, if a page is doing the right sort of redirect? tl;dr. To do a HEAD request and show the headers: curl -I [url]

The other answers require the response body to be downloaded. But there's a way to make a POST request that will only fetch the header:

curl -s -I -X POST http://www.google.com

An -I by itself performs a HEAD request which can be overridden by -X POST to perform a POST (or any other) request and still only get the header data.

Print the Response Headers (TLDR: Use -i argument) – Curl , These curl recipes show you how to print HTTP headers from a curl response. Print the Response Headers and Body (together); Print Only the Response It makes a GET request to https://catonmat.net and when it receives a response,� Making a HEAD request changes the output I get, so I really do want to GET. and then only see the headers. Handily, when you use the -v verbose flag with curl, it sends the output to stdout as usual, but the extra information including the headers goes to stderr. This means that I can therefore view the headers only throwing away stdout completely:

The Following command displays extra informations

curl -X POST http://httpbin.org/post -v > /dev/null

You can ask server to send just HEAD, instead of full response

curl -X HEAD -I http://httpbin.org/

Note: In some cases, server may send different headers for POST and HEAD. But in almost all cases headers are same.

Include HTTP headers in Curl response (Example), Lets go over the case of testing a JSON API using curl — By default, curl will make a request to the url you provide and print out the response� 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.

For long response bodies (and various other similar situations), the solution I use is always to pipe to less, so

curl -i https://api.github.com/users | less

or

curl -s -D - https://api.github.com/users | less

will do the job.

View header and body with curl – Rob Allen's DevNotes, curl -v -H "Accept: application/json" https://api.joind.in/ GET / HTTP/1.1 However, usually, I only want to know the response's headers and� 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.

Maybe it is little bit of an extreme, but I am using this super short version:

curl -svo. <URL>

Explanation:

-v print debug information (which does include headers)

-o. send web page data (which we want to ignore) to a certain file, . in this case, which is a directory and is an invalid destination and makes the output to be ignored.

-s no progress bar, no error information (otherwise you would see Warning: Failed to create the file .: Is a directory)

warning: result always fails (in terms of error code, if reachable or not). Do not use in, say, conditional statements in shell scripting...

Tutorial, The request contains a method (like GET, POST, HEAD etc), a number of All HTTP replies contain a set of response headers that are normally hidden, use curl's You can ask the remote server for ONLY the headers by using the --head (-I)� By default, curl doesn't print the response headers. It only prints the response body. To print the response headers, too, use the -i command line argument. Print the Response Headers and Body (together) Print Only the Response Headers.

How To Use, (HTTP) Request a compressed response using one of the algorithms curl supports, Using -v, --verbose will get a warning displayed, but that is the only visible The file format of the file to read cookies from should be plain HTTP headers� We can retrieve remote content with curl, post to a remote URL, and perform hundreds of other tasks. One simple task that can be completed is simply retrieving basic response headers. To test the robot indexing prevention header I added to the Mozilla Developer Network, I used one simple cURL command to grab all headers from an address.

Network Requests with Perfect-CURL, The Perfect-CURL package provides support for curl in Swift. This package uses a simple request/response model to access URL contents. Start by In addition, meta-information such as the response HTTP headers and status code can be retrieved. Response body data is made available through a series of get- only� Viewing response headers with cURL. When debugging issues with a website, you may want to view the HTTP response headers sent by the server. To enable this feature, you can use the -i option.

Popular curl Examples, FTP upload; Proxy support; SSL connections; HTTP post curl command that simulates a GET request for a website URL. This command will output the HTTP response of the URL in question. The -I option is used to tell curl to only fetch the HTTP headers ( HEAD method) of a particular page or resource. -i, --include - Include the response headers.-d, --data - The data to be sent.-H, --header - Additional header to be sent. HTTP GET # The GET method requests a specific resource from the server. GET is the default method when making HTTP requests with curl.

Comments
  • above comment is valid if you're using powershell. for cmd.exe use curl -s -D - http://yahoo.com -o nul
  • @JJS for me $null worked on Win7. Is it due to cLink installed on windows.
  • The "-" in front of the URL may seem unimportant, but it's not.
  • @WahidSadik Why's is that the case in particular? What's the function of the single dash?
  • @mamachanko -D takes an argument that says where the output should go. the single dash means it should go to stdout.
  • This answer is actually correct because web servers can return different headers based on request method. If you want to check headers on GET, you have to use GET request.
  • This is the most correct answer, in my opinion. It is easy to remember, it actually sends GET request and doesn't download the whole response body (or at least doesn't output it). The -s flag is nor necessary.
  • @JeffPuckettII well kinda nitpicking I would say. You can replace GET with POST in above command and it will work as expected. or any other is key there.
  • This does not work when you actually want to POST some data. Curl says: Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
  • @nickboldt The point here is that a server might respond differently to a HEAD request than to a POST or GET request (and some servers actually do that), so -X HEAD is no reliable solution here.
  • It's unfortunate that the other answer won, because this is the correct answer - it doesn't unnecessarily transfer a ton of data.
  • @dmd If I understand the cURL manual for -X, --request correctly, -X HEAD still results in "a ton of data" but there is -I, --head which should results in what you are anticipating.