Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does --data option work in curl

Tags:

linux

curl

curl --data "<xml>" --header "Content-Type: text/xml" --request PROPFIND url.com

By reading the curl man page I could not understand how the above commandline is using --data option.

Question:

  1. What does above commandline do ?
  2. Why doesn't man page describe this usage? If it does then what did I not understand after reading the man page?
like image 595
Ankur Agarwal Avatar asked Aug 07 '26 10:08

Ankur Agarwal


1 Answers

The --data flag is for defining POST data.

The command sends a POST with contents <xml> and MIME type text/xml. However, with the flag --request, you are setting the HTTP method from POST to PROPFIND and sending the request to url.com.

I also did manage to find the --data flag in the manual:

-d, --data <data>

(HTTP) Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to -F, --form.

-d, --data is the same as --data-ascii. To post data purely binary, you should instead use the --data-binary option. To URL-encode the value of a form field you may use --data-urlencode.

If any of these options is used more than once on the same command line, the data pieces specified will be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post chunk that looks like 'name=daniel&skill=lousy'.

If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want curl to read the data from stdin. The contents of the file must already be URL-encoded. Multiple files can also be specified. Posting data from a file named 'foobar' would thus be done with --data @filename. When --data is told to read from a file like that, carriage returns and newlines will be stripped out.

like image 83
hexacyanide Avatar answered Aug 09 '26 08:08

hexacyanide



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!