Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: saroaes en 26 Abril 2015, 15:02 pm



Título: PHP Webservices al ejecutar el cliente no sale nada
Publicado por: saroaes en 26 Abril 2015, 15:02 pm
Buenos días

Estoy creando mi primer WebService con PHP y ya he conseguido generar el XML con WDSL desde mi servicio, pero ahora cuando voy a ejecutar mi Cliente.php no me muestra nada.

Es un Web Service que me debería mostrar el nombre de 3 libros, pero no sé qué me falta o qué tengo mal por lo que no me sale, por favor ayudenme, lo necesito para el trabajo y no lo consigo :-(

Os dejo el código completo:

Servicio.php

Código
  1. <?php
  2.    require_once "nusoap/nusoap.php";
  3.  
  4.    function getProd($categoria)
  5. {
  6.        if ($categoria == "libros") {
  7.            return join(",", array(
  8.                "El señor de los anillos",
  9.                "Los límites de la Fundación",
  10.                "The Rails Way"));
  11.        }
  12.        else {
  13.            return "No hay productos de esta categoria";
  14.        }
  15.    }
  16.  
  17.    $server = new soap_server();
  18.    $server->configureWSDL("producto", "urn:producto");
  19.  
  20.    $server->register("getProd",
  21.        array("categoria" => "xsd:string"),
  22.        array("return" => "xsd:string"),
  23.        "urn:producto",
  24.        "urn:producto#getProd",
  25.        "rpc",
  26.        "encoded",
  27.        "Nos da una lista de productos de cada categoría");
  28.  
  29.    $server->service($HTTP_RAW_POST_DATA);
  30. ?>
  31.  
  32. Cliente.php
  33.  
  34. <?php
  35. $cliente->setCurlOption(CURLOPT_CONNECTTIMEOUT, 60);
  36.    require_once "nusoap/nusoap.php";
  37.    $cliente = new nusoap_client("https://mantenimiento.gmv.com/modules/WebServices/servicio.php");
  38.  
  39.    $error = $cliente->getError();
  40.    if ($error) {
  41.        echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
  42.    }
  43.  
  44.    $result = $cliente->call("getProd", array("categoria" => "libros"));
  45.  
  46.    if ($cliente->fault)
  47. {
  48.        echo "<h2>Fault</h2><pre>";
  49.        print_r($result);
  50.        echo "</pre>";
  51.    }
  52.    else
  53. {
  54.        $error = $cliente->getError();
  55.        if ($error) {
  56.            echo "<h2>Error</h2><pre>" . $error . "</pre>";
  57.        }
  58.        else {
  59.            echo "<h2>Libros</h2><pre>";
  60.            echo $result;
  61.            echo "</pre>";
  62.        }
  63.    }
  64. ?>

¿Tengo qué hacer algo con el XML que se genera? Como veis estoy echa un auténtico lio :-S

Mil gracias de nuevo!!

Mod: Los códigos deben estar entre etiquetas GeSHi


Título: Re: PHP Webservices al ejecutar el cliente no sale nada
Publicado por: peib0l en 29 Abril 2015, 21:18 pm
Mi experiencia con SOAP me dice que si no muestra nada es porque tienes algún error en el WSDL

tienes puesto el:

Código
  1. <?xml version="1.0"?>