Utilizando NuSOAP V

Valoración del artículo:
Ponemos fin a la serie de capítulos sobre los Web Services.
Publicado: 01/4/05
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Código de mostrarPronostico.php

<?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.
*/
// Le indicamos a PHP que no muestre los Notices (por si el servicio no retorna datos)
// (esto se puede evitar preguntando si hay datos antes de mostrarlos)
error_reporting(1);

// 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();
}

// Viene de un POST => Selecciono una ciudad
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   $aParametros = array("code" => $_POST["codLocalidad"]);
   $aRespuesta = $oSoapClient->call("getWeatherReport", $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;
      }
}
?
><html>
   <body>
      <table width="367" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td colspan="2"><div align="center">Datos del tiempo</div></td>
      </tr>
      <tr>
         <td width="147"> </td>
         <td width="220"> </td>
      </tr>
      <tr>
         <td>Nombre:</td>
         <td><?=$aRespuesta["station"]["name"];?></td>
      </tr>
      <tr>
         <td>Elevación:</td>
         <td><?=$aRespuesta["station"]["elevation"]; ?></td>
      </tr>
      <tr>
         <td>Fecha y Hora:</td>
         <td><?=$aRespuesta["timestamp"];?></td>
      </tr>
      <tr>
         <td>País:</td>
         <td><?=$aRespuesta["station"]["country"];?></td>
      </tr>
     <tr>
         <td>Latitud:</td>
         <td><?=$aRespuesta["station"]["latitude"];?></td>
      </tr>
         <tr>
      <td>Longitud:</td>
         <td><?=$aRespuesta["station"]["longitude"];?></td>
      </tr>
      <tr>
         <td>Presión:</td>
         <td><?=$aRespuesta["pressure"]["string"];?></td>
      </tr>
      <tr>
         <td>Temperatura:</td>
         <td><?=$aRespuesta["temperature"]["string"];?></td>
   <   /tr>
      <tr>
         <td>Visibilidad:</td>
         <td><?=$aRespuesta["visibility"]["distance"];?> mts.</td>
      </tr>
      </table>
   </body>
</html>

Comentarios
Fueron enviados 10 comentarios al artículo
6 comentarios no revisados
4 comentarios revisados:
Por: dgraselli
15/4/05
Simple, claro, sencillo. Excelente.

Que otras implementaciones existen para dar un servicio de WS en PHP?
Por: Orlando
30/4/05
Muchas gracias dgraselli.
Otras opciones para servicios web en php son PHP-SOAP (http://phpsoaptoolkit.sourceforge.net/phpsoap/), PEAR (http://pear.php.net/package/SOAP), y PHP desde su version 5 esta implementando web services (si mal no recuerdo, aun no es recomendable para ambientes productivos). Seguramente me este olvidando de alguna otra implementacion (esas son las que recuerdo en estos momentos)

Saludos.
Por: Serge
15/6/05
Esta excelente el articulo. Explica perfecto el uso de NuSOAP para crear clientes pero me gustaria saber como crear servidores y especialmente como definir el WSDL de un webservice creado por NuSOAP ya que acutalmente no lo he logrado realizar.
Por: Franco
18/8/05
Efectivamente la implentacion del servidor es algo que se encuentra en muy pocas webs, y no hay ejemplos realmente claros, pero este es un ejemplo que sirve de mucho para entender como generar el servicio.
http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html?page=2

Saludos

Manuales relacionados
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo