cURL is a
tool to transfer data from server to client or vice versa. There are many
protocols used by cURL such that FILE, FTP, HTTPS, POP3, SMTP, TELNET etc.
Following steps requires to send JSON data via post request with
PHP cURL:
Step-1: First we will
specify URL ($url) where the JSON data
need to be send.
Step-2: Initiate cURL resource using curl_init().
step-3: Encode PHP array data into a JSON string using json_encode().
step-4: Attach JSON data to the POST field using the CURLOPT_POSTFIELDS option.
step-5: Set header option to Content-Type: application/json
step-6: Return response as string CURL_RETURNTRANSFER option
Step-7: Finally curl_exec() function is used to execute the POST request api url.
Step-2: Initiate cURL resource using curl_init().
step-3: Encode PHP array data into a JSON string using json_encode().
step-4: Attach JSON data to the POST field using the CURLOPT_POSTFIELDS option.
step-5: Set header option to Content-Type: application/json
step-6: Return response as string CURL_RETURNTRANSFER option
Step-7: Finally curl_exec() function is used to execute the POST request api url.
index.php
In the following
example code, We will pass POST data on API URL as JSON format.
<?php
<?php
$id='007xy2';
$name="Durga Prasad Padhan";
$address="Bargarh";
$phone=9938216146;
//API URL
$url="http://localhost/curl/example.php";
$data =array("Voter ID" =>$id,"Name" =>$name,"Address" =>$address,"Phone"=>$phone);
$newData = curl_init( $url );
# Setup request to send json via POST.
$person = json_encode( array( "Person"=> $data ) );
curl_setopt( $newData, CURLOPT_POSTFIELDS, $person );
curl_setopt($newData, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt( $newData, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt( $newData, CURLOPT_RETURNTRANSFER, true );
# Send request.
$result = curl_exec($newData);
curl_close($newData);
# Print response.
echo "<pre>" . $result. "</pre>";
?>
example.php
In the following code,
We will Receive JSON POST data using PHP.
1st: jsone_decode()
function is used to decode JSON data into array format .
2nd:
file_get_content() function is used to receivedata in readable format.
<?php header("Content-Type:application/json"); $data = json_decode(file_get_contents('php://input'), true); print_r($data); ?>
Output: