POST with curl without sending data

Is there a way to use curl to send a POST request without sending any data?

We usually post like:

curl --data @C:\mydata.txt http://1.2.3.4/myapi

If you omit the --data you are doing a GET. How can you omit it and still do a POST?


Randomly found the solution on another post:

curl -X POST http://example.com


Another option is sending a request with empty body, like so:

curl http://example.com -d {}

This is a bit of a hack, but you could always provide an empty --data file.

Alternately

cat /dev/null | curl --data @- http://...

In case of libcurl with PHP:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

If you need to be authenticated then below is the command:

curl -X POST -u username:password http://example.com