How to POST and Receive JSON Data using PHP cURL

When you working with web services and APIs, sending JSON data via POST request is the most required functionality. PHP cURL makes it easy to POST JSON data to URL. In this tutorial, we will show you how to POST JSON data using PHP cURL and get JSON data in PHP.

Send JSON data via POST with PHP cURL

The following example makes an HTTP POST request and send the JSON data to URL with cURL in PHP.

  • Specify the URL ($url) where the JSON data need to be sent.
  • Initiate new cURL resource using curl_init().
  • Setup data in PHP array and encode into a JSON string using json_encode().
  • Attach JSON data to the POST fields using the CURLOPT_POSTFIELDS option.
  • Set the Content-Type of request to application/json using CURLOPT_HTTPHEADER option.
  • Return response as a string instead of outputting it using CURLOPT_RETURNTRANSFER option.
  • Finally, curl_exec() function is used to execute the POST request.
$url '';

//create a new cURL resource
$ch curl_init($url);

//setup request to send json via POST
$data = array(
'username' => 'semicolonworld',
'password' => '123456'
$payload json_encode(array("user" => $data));

//attach encoded JSON string to the POST fields

//set the content type to application/json
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type:application/json'));

//return response instead of outputting

//execute the POST request
$result curl_exec($ch);

//close cURL resource

Receive JSON POST Data using PHP

The following example shows how you can get or fetch the JSON POST data using PHP. The JSON data will be decoded using json_decode() function and file_get_contents() function is used to received data in a more readable format.

$data json_decode(file_get_contents('php://input'), true);

Related Articles

Comments 0