Conectarse a un Web Service en PHP con WPF
Este caso
de estudio, que vamos a ver a lo largo de esta entrada, nos minimiza costos, al
menos en la parte de que nuestros servidores pueden estar sobre plataforma
Linux, inclusive si vamos a crear una aplicación open source podemos usar
hosting gratuitos que existen en grandes cantidades.
Y en el cuadro de dialogo que se despliega, hay que ir a la opción Advance:
En el nuevo cuadro de dialogo que se despliega existe la opción de compatibilidad, que se nos ofrece a través de un botón llamado “Add Web Reference”:
Además hay
que tomar en cuenta el hecho de que no existen muchos hosting de Bases de Datos
(por no decir ninguno) que permitan conexiones remotas, lo cual se nos presenta
como un problema un poco difícil de salvar, a menos claro de que usemos Web
Services.
Crear el Web Service en PHP
Para crear
un Web service en PHP deberemos de usar la librería de clases NuSOAP, que la
podemos descargarla de aquí.
NuSoap es
un conjunto de clases escritas en PHP, que facilitan la creación y el consumo
de Web Services SOAP, esta librería se caracteriza
por si sencillez al momento de implementarla, lo cual genera menos tiempo de
Desarrollo para nuestros proyectos.
Para nuestra
aplicación de prueba crearemos un Web Servicie que nos ofrezca un método
llamado Operation, que devuelva la suma de dos dígitos, enviados a través de
los parámetros del método. El código en PHP debería ser el siguiente:
//Se agrega la libreria
nusoap.php, que debe de existir en el mismo
//directorio donde se
encuntre este archivo
require_once('nusoap.php');
// Se crea una instancia
del Servidor SOAP
$server = new soap_server;
// Inicializamos el
soporte para WSDL
$server->configureWSDL('hellowsdl',
'urn:hellowsdl');
// Registramos en el
servidor el metodo que deseamos exponer
$server->register(
'operation', // Nmbre del Metodo
array('firstNumber' => 'xsd:string',
'secondNumber' => 'xsd:string'),
// Parametros de Entrada
array('return' => 'xsd:string'), // Parametros de Salida
'uri:Space', // namespace
'uri:Space/operation', // Accion SOAP
'rpc', // estilo
'encoded' // uso
);
// Define the method as a
PHP function
//function
operation($firstNumber, $secondNumber) {
function
operation($firstNumber, $secondNumber) {
return ($firstNumber + $secondNumber);
}
// Usamos esta peticion
para invokar el servicio
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Si entramos
a nuestro navegador y ponemos la ruta del archivo seguido del parámetro ?wsdl,
obtendremos lo siguiente:
El
siguiente paso, es crear una aplicación en WPF, que llame al servicio web, la aplicación
luce así:
Para llamar
al servicio web, hay que agregar una referencia web:
Y en el cuadro de dialogo que se despliega, hay que ir a la opción Advance:
En el nuevo cuadro de dialogo que se despliega existe la opción de compatibilidad, que se nos ofrece a través de un botón llamado “Add Web Reference”:
Se nos
desplegara un nuevo cuadro de dialogo, donde deberemos de agregar la URL de
nuestro servicio web:
El último
paso sería crear un evento asociado, al botón calculate que haga la llamada al
web service y que asigne al text box el resultado de la operación, el código sería
algo así:
using System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Imaging;
using
System.Windows.Navigation;
using
System.Windows.Shapes;
namespace
TestNuSOAP
{
///
///InteractionlogicforMainWindow.xaml
///
public
partial classMainWindow:Window
{
private
localhost.hellowsdlclient;
public
MainWindow()
{
InitializeComponent();
client=newlocalhost.hellowsdl();
}
private
void btnOperation_Click(objectsender,RoutedEventArgse)
{
if(txtNumberOne.Text!=string.Empty&&txtNumberTwo.Text!=string.Empty)
txtResult.Text=client.operation(txtNumberOne.Text,txtNumberTwo.Text);
}
}
}
Y listo,
ahora podemos sumar 2 números en un web service!!:
Bastante fácil
consumir un servicio PHP en WPF, con lo cual me despido.
Comentarios
Publicar un comentario