Web Service en PHP y Cliente C#
Crear un Service Web en PHP y
Consumir desde C#
Vamos a crear un servicio web en PHP mediante SOAP y WSDL, usando la librería nuSOAP. Básicamente un servicio web nos permite la comunicación entre un servidor que posee la parte lógica, y un cliente que la solicita, para ello nos apoyaremos en los siguientes estándares: SOAP que establece las reglas del intercambio, WSDL que describe la interfaz pública del servicio, y XML que estructura los datos que se intercambian.
Para este tutorial utilizaremos el ejemplo de la Operaciones con Fracciones
Para este tutorial utilizaremos el ejemplo de la Operaciones con Fracciones
Antes de comenzar a programar, necesitamos descargar NuSOAP PHP Library de su sitio web oficial. El enlace de descarga se da a continuación.
Requisitos adicionales
- IDE Netbeans
- Apache XAMPP
Service Web PHP
Ejecutamos el Apache XAMPP, para trabajar con PHP
En el directorio de XAMPP en htdocs creamos un nuevo proyecto con el nombre Servidor
Dentro de esta carpeta pegamos la carpeta que contiene la librería NUSOAP
Dentro de esta carpeta se encuentra diferentes archivos de la librería
Para facilitar la programación abriremos el proyecto con el IDENetbeans
Para comenzar a programar creamos un nuevo archivo .php, para lo cual damos clic derecho sobre el proyecto nuevo, y seleccionamos la opción PHP File
El archivo que creamos tiene el nombre de servicio, hasta el momento la estructura del proyecto esta como en la imagen
<?php// incluimos la libreria ó toolkit nusoap que descargamos previamenterequire 'lib/nusoap.php';?><?php// Vamos a crear la instancia del servidor.$servicio = new nusoap_server();?><?php$nombre = "urni:nombre"; //Declaramos un nombre para el parametro$servicio->configureWSDL('MiPrimerServicio', $nombre);?>
Registramos la estructura de datos usado por el servicio
Registramos el método/función para que el Web Service lo reconozca y se pueda utilizar:
?>
Definimos el método como una función PHP
Registramos el método/función para que el Web Service lo reconozca y se pueda utilizar:
<?php// Parametros de entrada$servicio->register("SumaFraccion", array('nombre' => array('num1' =>'xsd:integer', 'num2' =>'xsd:integer','num3' =>'xsd:integer','num4' =>'xsd:integer',),array('return' =>'xsd:string'),$nombre);?>
<?phpfunction SumaFraccion($num1,$num2,$num3,$num4) { $num = $num1 * $num4 + $num3 * $num2; $den = $num2 * $num4; //Con esto simplificamos la fracción $mcd=gmp_gcd($num,$den); $arriba=$num / $mcd; $abajo=$den / $mcd; $resultado=$arriba.'/'.$abajo;
return $resultado;
}?>
Usamos el pedido para invocar el servicio y hasta aquí llegaría el ejemplo del lado del servidor.
<?php$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';$servicio->service($HTTP_RAW_POST_DATA);?>
Con esto ya tenemos la estructura de nuestro Servicio Web en PHP, para ver si funciona ejecutamos el programa, debe mostrarse una pagina como la siguiente con todos los métodos de nuestro servicio
Cliente C#
Para consumir el servicio con C#, debemos copiar el Link que se abrió al ejecutar nuestro servicio
Creamos un nuevo proyecto en Visual Studio, y diseñamos el formulario de nuestra aplicación de la siguiente forma
Procedemos a realizar la referencia, para lo cual seleccionamos nuestro proyecto que se encuentra en la parte derecha con nombre ClientePHP, seguido de eso en la barra de herramientas del Visual Studio damos clic sobre la opción Proyecto, en las opciones desplegadas seleccionamos la opción Agregar referencia de servicio
En la ventana que se abrió seleccionamos la opción Abanzado
Seleccionamos la opción Agregar referencia web , y pegamos el enlace que se copio al principio
Clic en la fecha de comprobar o siguiente, generamos el WSDL y colocamos un nombre a nuestra referencia
Con esto ya podemos acceder al servicio web que se encuentra en PHP, para usarlo desde C#, con el siguiente código accedemos a todos los métodos del servicio
El código terminado queda de la siguiente forma
Ejecutamos el proyecto finalizado y con esto ya tenemos finalizado la parte del Cliente en C#
Creamos un nuevo proyecto en Visual Studio, y diseñamos el formulario de nuestra aplicación de la siguiente forma
Procedemos a realizar la referencia, para lo cual seleccionamos nuestro proyecto que se encuentra en la parte derecha con nombre ClientePHP, seguido de eso en la barra de herramientas del Visual Studio damos clic sobre la opción Proyecto, en las opciones desplegadas seleccionamos la opción Agregar referencia de servicio
En la ventana que se abrió seleccionamos la opción Abanzado
Seleccionamos la opción Agregar referencia web , y pegamos el enlace que se copio al principio
Clic en la fecha de comprobar o siguiente, generamos el WSDL y colocamos un nombre a nuestra referencia
Con esto ya podemos acceder al servicio web que se encuentra en PHP, para usarlo desde C#, con el siguiente código accedemos a todos los métodos del servicio
ServicioPHP.MiPrimerServico obj
=new ServicioPHP.MiPrimerServico();
El código terminado queda de la siguiente forma
Ejecutamos el proyecto finalizado y con esto ya tenemos finalizado la parte del Cliente en C#















Comentarios
Publicar un comentario