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
Â