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:
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
)
)
https://davidwalsh.name/curl-post-file