Al trabajar con servicios web y APIs, el hecho de enviar datos en JSON vÃa POST es una de las tareas más comunes. PHP cURL hace posible que podamos postear datos JSON a una URL. En este tutorial, te mostraré como enviar datos JSON mediante cURL y cómo recibir datos JSON en PHP.
Enviar y recibir datos JSON mediante JSON
En el siguiente ejemplo realizaremos un solicitud POST y enviaremos los datos JSON a una URL con cURL en PHP.
- Especifica la URL ($url) donde debes enviar los datos JSON
- Inicia cURL utilizando curl_init()
- Define los datos en un array PHP y formatéalos a JSON utilizando json_encode()
- Adjunta los datos JSON a los campos POST utilizando la opción CURLOPT_POSTFIELDS
- Establece el Content-Type de la solicitud a application/json utilizando la opción CURLOPT_HTTPHEADER
- Devuelve la respuesta como un string en lugar de enviarla utilizando la opción CURLOPT_RETURNTRANSFER
Finalmente, utilizaremos la función curl_exec() para realizar la petición POST
//API URL
$url = 'http://www.example.com/api';
//create a new cURL resource
$ch = curl_init($url);
//setup request to send json via POST
$data = array(
'username' => 'codexworld',
'password' => '123456'
);
$payload = json_encode(array("user" => $data));
//attach encoded JSON string to the POST fields
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
//set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
//return response instead of outputting
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute the POST request
$result = curl_exec($ch);
//close cURL resource
curl_close($ch);
Recibir datos JSON utilizando PHP
En el siguiente ejemplo muestro cómo obtener o extraer datos JSON utilizando PHP. Decodificaremos los datos JSON utilizando la función json_decode() y la función file_get_contents() la utilizaremos para recibir la información en un formato más legible.
$data = json_decode(file_get_contents('php://input'), true);
Fuente: codexworld.com
Â
