Our Knowledge Base provides step-by-step guides, troubleshooting tips, and expert insights to help you manage VPS, dedicated servers, domains, DDoS protection, and more — all designed to make your experience with us fast, secure, and stress-free.
In this article, we’re going to explain how to use cURL to make POST requests. The HTTP POST method is used to send data to the remote server.
cURL is a command-line utility for transferring data from or to a remote server using one of the supported protocols. It is installed by default on macOS and most Linux distributions.
The general form of the curl command for making a POST request is as follows:
curl -X POST [options] [URL]
The type of the request body is indicated by its Content-Type header.
Generally, a POST request is sent via an HTML form. The data send to the form is usually encoded in either multipart/form-data or application/x-www-form-urlencoded content type.
To create a POST request, use the -F option, followed by the field=value pair. The following example shows how to make a POST request to a form that has “name” and “email” fields:
curl -X POST -F 'name=nexonhost' -F 'email=nexonhost@example.com' https://example.com/contact.php
When the -F option is used, curl sends the data using the multipart/form-data Content-Type.
Another way to make a POST request is to use the -d option. This causes curl to send the data using the application/x-www-form-urlencoded Content-Type.
curl -X POST -d 'name=nexonhost' -d 'email=nexonhost@example.com' https://example.com/contact.php
If the -d option is used more than once you can merge the data using the & symbol:
curl -X POST -d 'name=nexonhost&email=nexonhost@example.com' https://example.com/contact.php
To set a specific header or Content-Type use the -H option. The following command sets the POST request type to application/json and sends a JSON object:
curl -X POST -H "Content-Type: application/json" \ -d '{"name": "linuxize", "email": "linuxize@example.com"}' \ https://example/contact
To POST a file with curl, simply add the @ symbol before the file location. The file can be an archive, image, document, etc.
curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload
We’ve shown you how to use curl to make POST requests. For more information about curl, visit the Curl Documentation page.