www.dominio1.com/SOAP/product_list.php
<?php
require_once "lib/nusoap.php";
function get_peliculas($decada) {
if ($decada == "1930") {
return join(",", array(
"Lo que el viento se llevó",
"Vive como quieras",
"Sucedió una noche"));
}
if ($decada == "1940") {
return join(",", array(
"Rebeca",
"Qué verde era mi valle",
"La señora Miniver"));
}
}
function get_msj_hola($nombre) {
return "Hola ".$nombre;
}
$server = new soap_server();
$server->configureWSDL("pelicula", "urn:pelicula");
$server->register("get_peliculas",
array("decada" => "xsd:string"),
array("return" => "xsd:string"),
"urn:pelicula",
"urn:pelicula#get_peliculas",
"rpc",
"encoded",
"descripción de lo que hace este método");
$server->register("get_msj_hola",
array("nombre" => "xsd:string"),
array("return" => "xsd:string"),
"urn:pelicula",
"urn:pelicula#get_msj_hola",
"rpc",
"encoded",
"descripción de lo que hace este método");
$server->service($HTTP_RAW_POST_DATA);?>
Para obtener el código del fichero wsdl será:http://www.dominio1.com/SOAP/product_list.php?wsdl
Copiamos y pegamos ese código y creamos un fichero peliculas.wsdl que copiaremos en el dominio del cliente.
En el dominio del cliente el código ahora será:
www.midominio2.com/SOAP/products_list_cliente.php
<?php
require_once "lib/nusoap.php";
$client = new nusoap_client("peliculas.wsdl", true);
$error = $client->getError();
if ($error) {
echo "<h2>Ha habido errores:</h2><pre>" . $error . "</pre>";
}
$msj_saludo = $client->call("get_msj_hola", array("nombre" =>"Pepe Luis"));
if ($client->fault) {
echo "<h2>Fallo en el SOAP</h2><pre>";
print_r($msj_saludo);
echo "</pre>";
}
else {
$error = $client->getError();
if ($error) {
echo "<h2>Error al llamar al método del SOAP</h2><pre>" . $error . "</pre>";
}
else {
echo "<h1>".$msj_saludo."</h1>";
echo "<h2>Películas</h2><pre>";
$list_peliculas = $client->call("get_peliculas", array("decada" => "1940"));
// antes de imprimirlo habria que chequear que no haya errores como en la otra llamada
echo $list_peliculas;
echo "</pre>";
}
}
?>
No hay comentarios:
Publicar un comentario