Hacer POST o GET con CURL en PHP

En ocasiones queremos consumir datos de un webservice mediante PHP, por lo que es necesario generar peticiones desde un script hacia otro ya sea en nuestro mismo servidor o en uno remoto, vamos a poner un ejemplo, donde consumos datos por medio de GET, en este caso nos va a devolver un archivo JSON.

<?php
   // get curl @toro
   $datos = [
   "api" => "eco",
   "var1"=> "uno",
   "var2"=> "dos",
   ];
   $metodo = "GET"; //cambiar a "POST" en caso de que sea post
   $url    = "https://tar.mx/apps/eco/?";
   $ch = curl_init();
   if($metodo == 'GET') {
      curl_setopt($ch,CURLOPT_URL,$url.http_build_query($datos));
   } else {
      curl_setopt($ch,CURLOPT_URL,$url);
      curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($datos));
   }
   curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
   $tmp = curl_exec($ch);
   $k = json_decode($tmp);
   curl_close($ch);
   print_r($k);

 

Con lo cual, nos devolvería algo como lo siguiente:

stdClass Object
(
    [msg] => Hola, son las 12:42 por aquí :-)
    [get] => stdClass Object
        (
            [api] => eco
            [var1] => uno
            [var2] => dos
        )
    [post] => Array
        (
        )
)

 

Eso es todo, si quisiéramos enviar los datos por POST sólo cambiamos la variable $metodo. En cualquier caso, esta es la forma más simple de enviar y recibir datos, en el ejemplo es un JSON pero podría ser un XML o el dato que devuelva el webservice y los datos que estamos enviando son como los que llenamos en un formulario.

Aquí tambien hay un ejemplo de como enviar un archivo al sevidor con PHP y CURL.

+ fotos / videos

Almacenado en PHP, curl, Utils

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Hacer POST o GET con CURL en PHP

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado lunes 12 de julio de 2021, 18:14