POSTing Form Data with cURL
Start your cURL command with curl -X POST
and then add -F
for every field=value
you want to add to the POST:
curl -X POST -F 'username=davidwalsh' -F 'password=something' http://domain.tld/post-to-me.php
If you were using PHP, you could use print_r
on the $_POST
variable to see that your server received the POST data as expected:
Array( 'username' => 'davidwalsh', 'password' => 'something' )
If you need to send a specific data type or header with cURL, use -H
to add a header:
# -d to send raw data curl -X POST -H 'Content-Type: application/json' -d '{"username":"davidwalsh","password":"something"}' http://domain.tld/login
POSTing Files with cURL
POSTing a file with cURL is slightly different in that you need to add an @
before the file location, after the field name:
curl -X POST -F 'image=@/path/to/pictures/picture.jpg' http://domain.tld/upload
Using PHP to explore the $_FILES
variable array would show file data as though it was uploaded via a form in browser:
Array( "image": array( "name" => "picture.jpg" "type" => "image/jpeg", "tmp_name" => "/path/on/server/to/tmp/phprj5rkG", "error" => 0, "size" => 174476 ) )
POSTing file contents with cURL is Probably easier than you thought, right?
The first time I needed to POST file data from command line I thought I was in for a fight; instead I found that cURL made the process easy!