Codifíca.me | Desarrollo web | Programación | SEOCodifíca.me | Desarrollo web | Programación | SEO
  • Monetizar
    • Adsense
    • SEO
  • Desarrollo web
    • Php
    • WordPress
    • Blogger
    • Facebook (API)
      • Aplicación Test
      • Conectar con Facebook
      • Facebook en Español
      • Publicar Facebook
    • Google Maps
    • JavaScript
    • Opencart
    • Prestashop
    • XML
    • Flash
  • Bases de datos
    • Oracle
    • MySql
    • Data Mining
    • Forms
    • SGBD
  • Código
    • Android
    • Ensamblador
    • Código ensamblador
    • Java
    • ms-dos
    • Pro*C
    • Vb.net
  • Crear Blog
  • Cajon desastre
    • Redes
    • Arquitectura
    • Ubuntu
    • Hardware
    • Software
    • Consolas
    • Iphone
  • Tools
    • Get Backlinks
    • SQL 2 XML
    • Footprints enlaces
    • Whois
Ops! Hemos pasado los 1000 comentarios!!! Gracias a vosotros llevamos 1022 comentarios.
Participa en el blog!

Conexión webservice usando CURL

Se el primero en comentarPhp
Conexión webservice usando CURL
5 (100%) 2 votes

Ejemplo de código para conectarnos con un webservice utilizando la librería curl.

Esta práctica está hecha en dos partes, en la primera parte nos conectamos y logeamos en un webservice usando curl, nos devolverá un json con las claves y las firmas para poder realizar la siguiente conexión.
En la segunda parte nos conectamos utilizando la clave y la firma, hacemos la petición de productos que nos los devolverá en un json que después convertiremos en objeto para poderlo manejar “mejor”.

En esta primera parte nos conectamos y logeamos en la URL de control, que nos dará un key y una firma para poder después logearnos en el otro webservice que nos permitirá extraer los productos.

Primera parte:

 
                /********************** GET Firma  *************************************/ 
 
                $url = "http://api.---------------------------";    
                $content = ('
                {
                "user": "paquete",
                "parameters":
                {
                "email": "blablabla@gmail.com",
                "passwd": "pass111"
                }
                ,
                "session-key" : "",
                "signature": ""
                }
                ');
 
                $curl = curl_init($url);
                curl_setopt($curl, CURLOPT_HEADER, false);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
                curl_setopt($curl, CURLOPT_POST, true);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
 
                $json_response = curl_exec($curl);
                $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 
                curl_close($curl);
                $response = json_decode($json_response, true);
                $response=(object)$response;
 
                $sessionKey= $response->results['session-key'];

/********************** GET Firma *************************************/ $url = "http://api.---------------------------"; $content = (' { "user": "paquete", "parameters": { "email": "blablabla@gmail.com", "passwd": "pass111" } , "session-key" : "", "signature": "" } '); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); $response = json_decode($json_response, true); $response=(object)$response; $sessionKey= $response->results['session-key'];

php frameworks

Segunda parte:

En esta parte nos conectamos utilizando la clave y la firma, hacemos la petición de productos que nos los devolverá en un json que después convertiremos en objeto para poderlo manejar “mejor”.

 
                /********************** GET SKUs2 *************************************/
 
                echo $json_parameters.'</br>';
                echo $signature.'</br>';
                echo $sessionKey.'</br>';
 
 
                $json_parameters = json_encode((Array)$parameters);
                $signature = md5($json_parameters . $session_key);
 
 
                $url = "http://api.---------------------------2";    
                $content = ('
                {
                "user": "paquete",
                "parameters": [],
                "session-key" : "'.$sessionKey.'",
                "signature": "'.$signature.'"
                }
                ');
 
 
                $curl = curl_init($url);
                curl_setopt($curl, CURLOPT_HEADER, false);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
                curl_setopt($curl, CURLOPT_POST, true);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
 
                $json_response = curl_exec($curl);
                $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
                /*
                if ( $status != 201 ) {
                    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
                }*/
 
                curl_close($curl);
                $response = json_decode($json_response, true);
                $response=(object)$response;
                $elarray=(array)$response;
 
                // Conocer el tamaño del array/objeto //
                end($elarray[results][resultado]);
                $fin = key($elarray[results][resultado]); 
 
                //Mostrar el Objeto
                printr($response);

/********************** GET SKUs2 *************************************/ echo $json_parameters.'</br>'; echo $signature.'</br>'; echo $sessionKey.'</br>'; $json_parameters = json_encode((Array)$parameters); $signature = md5($json_parameters . $session_key); $url = "http://api.---------------------------2"; $content = (' { "user": "paquete", "parameters": [], "session-key" : "'.$sessionKey.'", "signature": "'.$signature.'" } '); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); /* if ( $status != 201 ) { die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); }*/ curl_close($curl); $response = json_decode($json_response, true); $response=(object)$response; $elarray=(array)$response; // Conocer el tamaño del array/objeto // end($elarray[results][resultado]); $fin = key($elarray[results][resultado]); //Mostrar el Objeto printr($response);

Miguel Ber
Miguel Ber Software Developer

Ingeniero informático y desarrollador de aplicaciones web. Experto en desarrollo web, Webmaster, e-commerce y SEO.

Code is {poetry}
¿Necesitas un desarrollador? Contáctame!
¿Tienes alguna pregunta? Te respondemos ya!!

Comparte esto:

  • Haz clic para compartir en Google+ (Se abre en una ventana nueva)
  • Haz clic para compartir en Twitter (Se abre en una ventana nueva)
  • Haz clic para compartir en Facebook (Se abre en una ventana nueva)
  • Haz clic para compartir en LinkedIn (Se abre en una ventana nueva)
  • Haz clic para compartir en Pinterest (Se abre en una ventana nueva)
  • Haz clic para compartir en Tumblr (Se abre en una ventana nueva)
  • Haz clic para enviar por correo electrónico a un amigo (Se abre en una ventana nueva)

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada.

Síguenos en las redes

Facebook
Twitter
Google+
Skype
GitHub
  • El mejor ordenador para empezar a programar
  • dell Opinión sobre el portátil Dell XPS 13 Review
  • Los mejores routers WiFi
  • Comparando los sistemas de almacenamiento en la nube
  • discos duros el mejor Comparativas disco duros externos
  • ips Cómo utilizar mi servidor como proxy
codifica.me
Este sitio emplea cookies para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies..Accept Leer más
Privacidad y Política de Cookies
loading Cancelar
La entrada no fue enviada. ¡Comprueba tus direcciones de correo electrónico!
Error en la comprobación de email. Por favor, vuelve a intentarlo
Lo sentimos, tu blog no puede compartir entradas por correo electrónico.