dominios y alojamiento web en hostalia

Utilizando NuSOAP IV

31 de marzo de 2005
Valoración del artículo:
Posibles usos para NuSOAP y conclusiónes finales.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
¿Cómo lo podemos usar?:

Existen muchas formas en que podríamos usar este Web Service, podemos dejar que el visitante seleccione su país y localidad, y que nuestro sitio le retorne cual es el pronostico actual (solo deberíamos incorporar un paso anterior al que se ofrece en el código, el de selección del país).

Otro uso que podemos darle es el de mostrar cual es el clima actual para una localidad determinada (lo mismo que hacen muchos diarios en sus cabeceras). Si decidimos implementar la segunda opción debemos tener especial cuidado en como lo hacemos, ya que si por cada petición que haga el usuario debemos conectarnos con el servidor que ofrece el web service, esto provocaría una gran demora para el usuario, y una sobrecarga innecesaria del servidor. Para solucionar esto podemos guardar en un archivo de texto o en una base de datos, el clima actual, para leerlo desde allí. Este archivo, o base de datos, la actualizaríamos cada un tiempo prudencial (como puede ser una hora o más).

Otros Web Services:

Actualmente existen gran cantidad de Web Services, gratuitos y no. En el sitio de XMethods pueden encontrar gran cantidad de ellos. Sin ir más lejos Google ofrece un web service para realizar búsquedas (solo hay que registrarse en http://www.google.com/apis/) y nos permitirá realizar 1000 consultas por día (creo que puede ser más que interesante para muchos).

Conclusión:

Los Web Services son un tema apasionante, ya que brindan gran funcionalidad y posibilidad de realizar cambios y mejorar nuestras aplicaciones. Un mismo web service puede ser consumido tanto por aplicaciones que se ejecutan en un servidor y entregan código html al cliente, como por aplicaciones que corren directamente en la máquina del cliente. Como vemos las posibilidades son infinitas, es sólo cuestión de comenzar a experimentar.

Apéndice:

Código de seleccionarLocalidad.php

/**
* Codigo para consumir un servicio web (Web Service) por medio de NuSoap.
* La distribucion del codigo es totalmente gratuita y no tiene ningun tipo de restriccion.
* Se agradece que mantengan la fuente del mismo.

*/ $sPais = "argentina"; // Nombre del pais que queremos el listado de localidades

// Inclusion de la libreria nusoap (la que contendra toda la conexión con el servidor // require_once('lib/nusoap.php');

$oSoapClient = new soapclient('http://live.capescience.com/wsdl/GlobalWeather.wsdl', true);

if ($sError = $oSoapClient->getError()) {
echo "No se pudo realizar la operación [" . $sError . "]";
die();
}
$aParametros = array("country" => $sPais);
$respuesta = $oSoapClient->call("searchByCountry", $aParametros);

   // Existe alguna falla en el servicio? if ($oSoapClient->fault) { // Si
echo 'No se pudo completar la operación';
die();
} else { // No
$sError = $oSoapClient->getError();
// Hay algun error ?
if ($sError) { // Si
echo 'Error:' . $sError;
die();
}
}
?>
<html>
   <body>
      <form action="mostrarPronostico.php" method="post" name="frmLocalidades" id="frmLocalidades">
         <table width="400" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td colspan="2"><div align="center">Seleccione una localidad</div></td>
      </tr>
      <tr>
         <td width="61"> </td>
         <td width="339"> </td>
      </tr>
      <tr>
         <td>Localidad:</td>
         <td><select name="codLocalidad" id="codLocalidad">
$aElemento)
      echo "<option value='".$aElemento["wmo"]."'>".$aElemento["name"]."</option>";
?>
         </select></td>
      </tr>
      <tr>
         <td> </td>
         <td> </td>
      </tr>
      <tr>
            /td>
            td><input type="submit" name="Submit" value="Quiero ver el pronostico"></td>
         /tr>
         /table>
      /form>
   /body>
</html>

Compartir en redes sociales

Comentarios
Fueron enviados 9 comentarios al artículo
7 comentarios no revisados
2 comentarios revisados:

wcorpos
error en el codigo
19/7/2010
soy nuevo en web service con php. he descargado el nusoap 0.9.5 y he creado el fichero seleccionarLocalidad.php y me salia un error en la linea:
$oSoapClient = new soapclient('http://live.capescience.com/wsdl/GlobalWeather.wsdl', true);

luego revise el archivo /lib/nusoap.php y me di cuenta que la clase tenia otro nombre asi que cambie la linea a:
$oSoapClient = new nusoap_base('http://live.capescience.com/wsdl/GlobalWeather.wsdl', true);

pero ahora me da error en la linea:
$respuesta = $oSoapClient->call("searchByCountry", $aParametros);

alguien me podria ayudar con este problema.
muchas gracias

wcorpos
codigo corregido
20/7/2010
Escribiendoles de nuevo. Les envio el codigo corregido:
------
<?php
/**
* Codigo para consumir un servicio web (Web Service) por medio de NuSoap.
* La distribucion del codigo es totalmente gratuita y no tiene ningun tipo de restriccion.
* Se agradece que mantengan la fuente del mismo.
*/
$sPais = "argentina";
// Nombre del pais que queremos el listado de localidades

// Inclusion de la libreria nusoap (la que contendra toda la conexión con el servidor
require_once('lib/nusoap.php');

//$oSoapClient = new soapclient('http://live.capescience.com/wsdl/GlobalWeather.wsdl', true);
$oSoapClient = new nusoap_client('http://live.capescience.com/wsdl/GlobalWeather.wsdl', true);

if ($sError = $oSoapClient->getError()) {
echo "No se pudo realizar la operación [" . $sError . "]";
die();
}
$aParametros = array("country" => $sPais);
$respuesta = $oSoapClient->call("searchByCountry", $aParametros);

// Existe alguna falla en el servicio?
if ($oSoapClient->fault) { // Si
echo 'No se pudo completar la operación';
die();
} else { // No
$sError = $oSoapClient->getError();
// Hay algun error ?
if ($sError) { // Si
echo 'Error: ' . $sError;
die();
}
}
?>
<html>
<head>
<title>Seleccionar localidad</title>
</head>
<body>
<form action="mostrarPronostico.php" method="post" name="frmLocalidades" id="frmLocalidades">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" align="center">Seleccione una localidad</td>
</tr>
<tr>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
<tr>
<td align="right">Localidad:&nbsp;</td>
<td>
<select name="codLocalidad" id="codLocalidad">
<?php
// Recorremos el array (wmo es la clave que necesitamos para el proximo script)
foreach ($respuesta as $iClave => $aElemento)
echo "<option value='".$aElemento["wmo"]."'>".$aElemento["name"]."</option>";
?>
</select>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="Quiero ver el pronostico"></td>
</tr>
</table>
</form>
</body>
</html>
------
La mala noticia es que a pesar de la correccion te muestra el siguiente error:
Error: wsdl error: XML error parsing WSDL from http://live.capescience.com/wsdl/GlobalWeather.wsdl on line 2: XML_ERR_NAME_REQUIRED

Creo que este error se debe a que no esta funcionando el web service invocado.

Manuales relacionados
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...