Peticiones remotas con/sin POST/GET a dominios externos con PHP

PHP   |   1 Comentarios

Para realizar Peticiones remotas con/sin POST/GET a otro dominio en este caso vamos a usar la libreria cURL de PHP. Uno de los objetivos de realizar una peticion a otro dominio puede ser el registro/login de un usuario, para el cual debemos guardar el registro en un Base de Datos externa en otro Dominio o en el caso del Login consultar la Base de datos que se aloja en otro dominio. Comenzamos: Para empezar debemos definir un objeto cURL, esto lo haremos a traves del metodo curl_init(), ejemplo:

 $handler = curl_init(); 

Con esto almacenamos nuestro objeto en $handler. Ahora pasamos a definir los parametros para cURL, necesimamos indicarle a que URL le hacemos la peticion, si queremos o no que nos retorne el header que conlleva la respuesta, si queremos que nos retorne la respuesta, y por supuesto si mandamos parametros por POST, o mandamos valores en la cabecera de la peticion. Paso a describir como se definen estos parametros:

 //Con curl_setopt vamos a definir los parametros en el objeto cURL. //Aqui le indicamos con que URL debe conectar en la peticion. curl_setopt($handler, CURLOPT_URL, "'https://mail.google.com/mail/feed/atom"); //En esta sentencia le estamos diciendo si queremos que retorne el Header de la respuesta. Solo valores TRUE/FALSE (o 1, 0) curl_setopt($handler, CURLOPT_HEADER, FALSE); //Especificamos si queremos la respuesta de la peticion, como en el caso anterior solo TRUE/FALSE (o 1, 0) curl_setopt($handler, CURLOPT_RETURNTRANSFER, TRUE); // Aqui es donde indicamos los valores que mandamos en nuestra cabecera de la peticion, con un array de valores como en el ejemplo y separando los valores por comas " , " curl_setopt($handler, CURLOPT_HTTPHEADER,"User-Agent: NuSOAP/0.6.6','Host: 66.192.128.18", "Content-Type: text/xml; charset=UTF-8","SOAPAction: http://tourico.com/webservices/SearchHotels", "Content-Length: 1072"); // Con CURLOPT_POST le estaremos diciendo si mandamos o no parametros por el metodo POST. [TRUE/FALSE = 1/0] curl_setopt($handler, CURLOPT_POST, FALSE); // Si en CURLOPT_POST el valor es TRUE, cURL va a esperar que especifiquemos que parametros son, esto lo hacemos asi: curl_setopt($handler, CURLOPT_POSTFIELDS, $campos); // Donde campos es un array 'clave'=>'valor' previamente definido, ejemplo: // $campos = array('email' => "email@email.com", 'contrasena' => "c0ntr4s3n4"); // Bien si deseamos especificar algun otro parametro (definidos algunos ejemplos al final) ahora es el momento por que vamos a ejecutar la peticion, debemos pasarle el objeto que antes creamos con cURL, de esta forma: $data = curl_exec($handler); // recibimos la ejecucion de la peticion en $data, ya que esta nos devolvera un resultado que nosotros almacenamos en este ejemplo para tratarla como bien nos convenga mas adelante. // Como ultimo paso cerramos la peticion cURL curl_close($handler); 

Tenemos varios parametros mas que podemos definir al objeto cURL como por ejemplo en el caso de tratarse de una peticion a una URL segura (https://) debemos indicarle que verifique o no el certificado:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, [FALSE/TRUE]);

Si nos interesa saber mas que la respuesta de la peticion, el codigo HTTP que nos devuelve antes de cerrar la peticion cURL debemos indicarle que nos devuelva el codigo:

$code = curl_getinfo ($handler, CURLINFO_HTTP_CODE);

Para realizar la misma peticion pasando los parametros por GET, omitimos las lineas donde le indicamos que mandamos parametros por POST y que parametros son, y indicamos los parametros en la URL, ejemplo:

curl_setopt($handler, CURLOPT_URL, "'https://mail.google.com/mail/feed/atom?parametro1=p¶metro2=a¶metro3=r"); 

*IMPORTANTEcomentar o omitir las lineas donde definimos:

curl_setopt($handler, CURLOPT_POST, TRUE); curl_setopt($handler, CURLOPT_POSTFIELDS, $campos); 

Como ultima recomendacion para evitar conflictos decir esta de mas que si no enviamos parametros por POST o en la cabecera o por el metodo GET, se omitan las lineas correspondientes para conseguir el objetivo que buscamos Para mas informacion podemos visitar la documentacion de PHP: Documentacion curl-setopt en PHP

¿Te ha gustado el artículo?
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (4 votos, promedio: 1,00 sobre 5)
Loading...

Suscríbete. Déjanos tu email y recibe contenido genial cada mes


Artículo escrito por

¡Exprésate! Dejanos tu comentario

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

1 Comentarios

luis

console.WrileLine("holaaaaaaaaaaaaaaaaaaaaaa");