Download - PACS PracticasU5 ServiciosWeb
-
7/25/2019 PACS PracticasU5 ServiciosWeb
1/4
SERVICIOS WEBConsumo de un servicio web
En el presente documento se realiza el consumo de un servicio
Web a travs del lenguaje de programacin PHP y que est
alojado en un repositorio Web.
-
7/25/2019 PACS PracticasU5 ServiciosWeb
2/4
PROGRAMACIN EN AMBIENTES CLIENTE-SERVIDOR
Pgina 2 M.S.C. ANTONIO DANIEL LPEZ SERRANO
PROCEDIMIENTO.Nuevamente trabajaremos con nuestro sitio de almacenamiento y donde se
encuentran alojados en la Web ciertos servicios disponibles a la comunidad
programadora.
Una de las razones por las cuales se consume o invoca un servicio Web a travs de los
leguajes de programacin, es con la finalidad de aprovechar los recursos disponibles
en la Web. Algunos de los muchos servicios Web que se encuentran actualmente
disponibles se ubican en el sitio oficial http://www.webservicex.com. En este sitio, estn
almacenadas diversas descripciones para los diferentes tipos de servicios Web, que se
invocan desde el lenguaje de programacin que se desee.
De aqu voy a tomar una ubicacin del servicio Web (archivo wsdl) que se consumir a
travs de cdigos en PHP que sern explicados posteriormente.
Recordemos que para poder realizar el consumo de los servicios Web en PHP se deber
de descargar la librera NuSOAP (http://sourceforge.net/projects/nusoap/), deber de
descomprimirse y colocar la carpeta liben donde se ubican nuestros programas PHP.
El servicio Web que se va a consumir para este ejemplo se tom de la pgina
http://www.webservicex.com/globalweather.asmxdel cual se tomar la descripcin
(Service Description) del mismo sitio.
Para el ejemplo que se mostrar a continuacin, vamos a trabajar con las operaciones
GetCitiesByCountry y GetWeather. Abrimos la descripcin y verificamos de qu manera
se desglosa esa operacin junto con el resultado para ser consumidos posteriormente.
http://sourceforge.net/projects/nusoap/http://sourceforge.net/projects/nusoap/http://sourceforge.net/projects/nusoap/http://www.webservicex.com/globalweather.asmx?op=GetCitiesByCountryhttp://www.webservicex.com/globalweather.asmx?op=GetCitiesByCountryhttp://sourceforge.net/projects/nusoap/ -
7/25/2019 PACS PracticasU5 ServiciosWeb
3/4
PROGRAMACIN EN AMBIENTES CLIENTE-SERVIDOR
Pgina 3 M.S.C. ANTONIO DANIEL LPEZ SERRANO
CDIGOS DE EJEMPLO PARA CONSUMIR UN SERVICIOWEB EN PHPColocar al inicio del cdigo de PHP la importacin o inclusin de la librera NUSOAP. Esto
puede hacerse de cualquiera de las siguientes dos maneras posibles.
include('lib/nusoap.php');
require_once("lib/nusoap.php");
1ER. PROGRAMA (invocado.php)
error_reporting(0);require_once('lib/nusoap.php');$client = new nusoap_client('http://www.webservicex.com/globalweather.asmx?WSDL', true);$err = $client->getError();
if ($err) {
echo 'Constructor error' . $err . '';}
$strCountry = 'mexico';$param = array('CountryName' => $strCountry);
$result = $client->call('GetCitiesByCountry', array('parameters' => $param), '', '', false, true);
//Verifica alguna fallaif ($client->fault) {
echo 'Fault';print_r($result);echo '';
} else {// Verifica errores$err = $client->getError();if ($err) {
// Muestra el errorecho 'Error' . $err . '';
}else{//Usa XML Parser para mapear el resultado XML y usar las variables PHP
$strResultXML = $result['GetCitiesByCountryResult'];$p = xml_parser_create();xml_parse_into_struct($p, $strResultXML, $vals, $index);
xml_parser_free($p);
echo '';print_r($vals);
echo '';
//Aqui hemos obtenido un arreglo con los valores que esperabamos tener$ciuadades = array();$i = 0;
foreach ($vals as &$tag) {if($tag['tag'] == 'CITY'){
$ciudades[$i] = $tag['value'];$i++;
}}
echo 'Aeropuertos del pais : '.strtoupper($strCountry).'';
echo '';foreach ($ciudades as &$city) {
echo '
'.$city.'
';}
echo '';echo '';
}}
-
7/25/2019 PACS PracticasU5 ServiciosWeb
4/4
PROGRAMACIN EN AMBIENTES CLIENTE-SERVIDOR
Pgina 4 M.S.C. ANTONIO DANIEL LPEZ SERRANO
2DO. PROGRAMA (mostrandoClima.php)
Si todo ha salido bien, al consumir el servicio Web en el primer programa se muestra el
listado de todos los aeropuertos de nuestro pas, mientras que en el segundo muestraen una tabla las caractersticas climatolgicas del aeropuerto seleccionado.
EJERCICIOTecleen y prueben los cdigos que se acaban de mencionar y para culminar con esta
unidad, les pido que realicen su reporte correspondiente.
La entrega del reporte ser para el da Lunes 14 de Diciembre del ao en curso.