How to Send and Receive JSON Data with PHP using cURL?

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.

index.php
In the following example code, We will pass POST data on API URL as JSON format.
<?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:

No comments:

Post a Comment

Labels

php (35) javascript (31) phpjavascript (30) jquery (23) html (20) mysql (14) database (9) codeigniter (4) json (4) bar chart (2) calendar (2) column chart (2) framework (2) google maps (2) query (2) tables (2) url (2) dropdown (1)

Popular Posts