How do I send an HTTP POST request? [Curl/Bash Code]

The POST method is used to send data to the server to create/update a resource on the server. In this HTTP POST request example, the Content-Type request header indicates the data type in the body of the POST message, and the Content-Length request header indicates the size of the data in the body of the POST request. The sample data is listed in the Content tab, and additional headers are listed in the Headers tab. The data is sent to the server in the body of the POST message. The Curl/Bash code was automatically generated for the POST Request example.
How do I send an HTTP POST request? [Curl/Bash Code] Send
POST /echo/post/json HTTP/1.1
Host: reqbin.com
Authorization: Bearer mt0dgHmLJMVQhvjpNXDyA83vA_PxH23Y
Content-Type: application/json
Content-Length: 80

{
  "Id": 12345,
  "Customer": "John Smith",
  "Quantity": 1,
  "Price": 10.00
}
Updated: Viewed: 32676 times
Curl/Bash code for POST Request example

Curl/Bash code for POST Request Example

This Curl/Bash code snippet was generated automatically for the POST Request example.
<< Back to the POST Request example

What is HTTP?

The Hypertext Transfer Protocol (HTTP) is the core of the World Wide Web and provides communication between HTTP clients and servers. HTTP works as a request-response protocol between a client and a server in a format that both HTTP clients and servers can understand. For example, when a user uploads a document to the server, the browser sends an HTTP POST request and includes the document in the body of the POST message. After processing the client's POST request, the server returns a response to the browser and indicates whether the server accepts or rejects the document, with a response status code and message.

What is the HTTP POST request method used for?

The HTTP POST request method is used to send data to the server or create or update a resource. The POST request is usually used when submitting an HTML form or when uploading data to a server. The HTTP POST request may or may not contain data. The data is sent to the server in the body of the POST request message. The Content-Type header indicates the data type in the body of the POST request, and the data length is indicated with the Content-Length HTTP header.

HTTP POST Request Examples

An example of HTTP POST request message for submitting an HTML form to the server.

POST HTML Form Example
POST /echo/post/form HTTP/1.1
Host: reqbin.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 23
      
key1=value1&key2=value2

An example of HTTP POST request message for sending JSON data to the server.

POST JSON Data Example
POST /echo/post/json HTTP/1.1
Host: reqbin.com
Accept: application/json
Content-Type: application/json
Content-Length: 81
      
{
  "Id": 78912,
  "Customer": "Jason Sweet",
  "Quantity": 1,
  "Price": 18.00
}

An example of HTTP POST request message for sending XML data to the server.

POST XML Data Example
POST /echo/post/xml HTTP/1.1
Host: reqbin.com
Content-Type: application/xml
Accept: application/xml
Content-Length: 118
      
<?xml version="1.0" encoding="utf-8"?>
<Request>
    <Login>login</Login>
    <Password>password</Password>
</Request>

Some notes on HTTP POST Requests

  • POST requests are used to create or update a resource on the server.
  • POST messages can contain any type of data of unlimited size.
  • POST method is not idempotent, which means that sending the same POST request multiple times can further affect the server's state.

See also

Generate code snippets for Curl/Bash and other programming languages

Convert your POST Request request to the PHP, JavaScript/AJAX, Curl/Bash, Python, Java, C#/.NET code snippets using the Curl/Bash code generator.