Para realizar una petición Post enviando contenido Json en php, podemos utilizar la curl_init() la cual nos crea una sesión de tipo cURL con la cual podemos establecer conexión a una url.
Junto con la función curl_init(), debemos utilizar la función curl_setopt() en la cual enviaremos las opciones de nuestra petición y el contenido json. Y también utilizaremos la función curl_exec() que es la que se encarga de mandar el mensaje.
Y para dejar todo esto claro a continuación un código sencillo en el cual voy comentando paso a paso que se está realizando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //url de la petición //inicializamos el objeto CUrl $ch = curl_init( $url ); //el json simulamos una petición de un login $jsonData = array ( 'usuario' => 'pato' , //código fijo 'password' => 'pato123456' ); //creamos el json a partir de nuestro arreglo $jsonDataEncoded = json_encode( $jsonData ); //Indicamos que nuestra petición sera Post curl_setopt( $ch , CURLOPT_POST, 1); //para que la peticion no imprima el resultado como un echo comun, y podamos manipularlo curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); //Adjuntamos el json a nuestra petición curl_setopt( $ch , CURLOPT_POSTFIELDS, $jsonDataEncoded ); //Agregamos los encabezados del contenido curl_setopt( $ch , CURLOPT_HTTPHEADER, array ( 'Content-Type: application/json' )); //ignorar el certificado, servidor de desarrollo //utilicen estas dos lineas si su petición es tipo https y estan en servidor de desarrollo //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //curl_setopt($process, CURLOPT_SSL_VERIFYHOST, FALSE); //Ejecutamos la petición $result = curl_exec( $ch ); |
Nota: La línea comentada: «curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE)» sirve para peticiones a servidores https desde un servidor de desarrollo el cual no tiene modo seguro.