Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2015, 15:53
Ekron
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 0
Información Problema de caracteres en WS con nusoap y php

Hola
Disculpen si esta consulta ya estaba, pero no he podido encontrarla, y les aseguro que la he buscado arto.

Resulta que hice un pequeño ws con nusoap (no tengo experiencia desarrollando web services con php, y todos los ejemplos en php me salían con nusoap).

El código es súper simple:

Código PHP:
<?php
date_default_timezone_set
('America/Los_Angeles');
require_once (
'lib/nusoap.php'); 

$server = new soap_server();

$server->configureWSDL('Validador''tns:Validador');

$server->register('validaNumeroSerie', array('globalemitida' => 'xsd:string','keyEnk' => 'xsd:string'), array('return' => 'xsd:string'), 'tns:Validador''tns:Validador#validaNumeroSerie''rpc''encoded''Valido el numero ingresado');

function 
validaNumeroSerie($globalemitida,$keyEnk

    if(
$globalemitida != "" && $keyEnk != "")
    {
        
$respuesta 1;
    }
    else
    {
        
$respuesta 0;
    }
    return 
$respuesta
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA '';

$server->service($HTTP_RAW_POST_DATA);

?>
la consulta seria la siguiente:

Código PHP:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="tns:Validador">
   <
soapenv:Header/>
   <
soapenv:Body>
      <
tns:validaNumeroSerie soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <
globalemitida xsi:type="xsd:string">a</globalemitida>
         <
keyEnk xsi:type="xsd:string">a</keyEnk>
      </
tns:validaNumeroSerie>
   </
soapenv:Body>
</
soapenv:Envelope
Y debiese de devolver esto

Código PHP:
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <
SOAP-ENV:Body>
      <
ns1:validaNumeroSerieResponse xmlns:ns1="tns:Validador">
         <return 
xsi:type="xsd:string">1</return>
      </
ns1:validaNumeroSerieResponse>
   </
SOAP-ENV:Body>
</
SOAP-ENV:Envelope
Lo único que necesito es que me devuelva un 0 o un 1, lo cual conseguí. Tengo un servidor montado en mi equipo con Windows, un appserv, y funciona de maravilla, pero cuando lo subo al servidor (hostgator), de 10 intentos, solo uno lo devuelve bien, el resto del tiempo devuelve unos caracteres extraños. Probé cambiando la codificación de la página (pensando que podía ser eso, pero nada).



Si a alguien le ha pasado algo similar, por favor, cualquier ayuda será muy agradecida.

Saludos a todos