Foros del Web » Programando para Internet » PHP »

webservice problemas al enviar un XML

Estas en el tema de webservice problemas al enviar un XML en el foro de PHP en Foros del Web. Buenas, Como todos me dirijo a vosotros para ver si alguien puede echarme una mano, Antes de recurrir he mirado y documentado... pero no encuentro ...
  #1 (permalink)  
Antiguo 04/07/2012, 02:40
 
Fecha de Ingreso: julio-2012
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta webservice problemas al enviar un XML

Buenas,

Como todos me dirijo a vosotros para ver si alguien puede echarme una mano,

Antes de recurrir he mirado y documentado... pero no encuentro solución.

Así que pongo el código en groso modo:
Código PHP:
<?php 
require_once('lib/nusoap.php');
// La dirección donde se aloja el Webservice
$url 'http://servidor.con/wsdl'
//Creamos el Cliente NuSoap
$cliente = new nusoap_client($urlTRUE);
//nombre de funcion
$funcion 'enviarDatos';
//Cargamos el XML a Validar
$documentoXML file_get_contents("enviar.xml");
//Lo Pasamos a Base64
$documentoXML base64_encode($documentoXML); 

//Parametros a enviar al Webservice de validación + xml 
$parametros = array('Agente' => $Agente,
                    
'Clave' => $Clave
                    
'Codigo' => $codigo,
                    
"fichero_xml" => (utf8_encode($documentoXML)));    
                    
//Llamamos a la función para Validar
$resultado $cliente->call($funcion $parametros);

// Buscamos errores
$err $cliente->getError();
if (
$err) {
    
// Mostramos errores si los hay
    
echo $err;
}
//Por si quiero imprimir el arreglo en pantalla
print_r ($resultado);

echo (
$cliente->request);
/**
echo ($cliente->response);
echo ($cliente->getDebug());
**/ 
?>
Y al ejecutarlo muestra el siguiente mensaje:
Código HTML:
wsdl error: phpType is struct, but value is not an array: see debug output for 
Ahora en fichero_xml cambio y pongo
Código PHP:
//Parametros a enviar al Webservice de validación + xml 
$parametros = array('Agente' => $Agente,
                    
'Clave' => $Clave
                    
'Codigo' => $codigo,
                    
"fichero_xml" =>  arry (utf8_encode($documentoXML))); 
Ya no da error, parece que lo manda, pero el contenido de fichero_xml esta vacio.

en el request se puede ver:
Código HTML:
...
<fichero_xml></fichero_xml>
...
¿y el contenido?


con la primera versión me he dado cuenta que al cambiar fichero_xml por ficheroxml si que funciona y no da error, es decir acepta:
Código PHP:
//Parametros a enviar al Webservice de validación + xml 
$parametros = array('Agente' => $Agente,
                    
'Clave' => $Clave
                    
'Codigo' => $codigo,
                    
"ficheroxml" => (utf8_encode($documentoXML))); 
Pero claro el webservice no entiende "ficheroxml", espera "fichero_xml".


El wsdl solicita:
Código HTML:
POST /services/WS_OpenRoom.asmx HTTP/1.1
Host: servidor.con
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://servidor.con/services/enviarDatos"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Datos xmlns="http://servidor.con/services/">
      <Agente>string</Agente>
      <Clave>string</Clave>
      <Codigo>string</Codigo>
      <fichero_xml>xml</fichero_xml>
    </Datos >
  </soap:Body>
</soap:Envelope> 
Por cierto también lo he intentado sin nuSoap, de forma nativa con el PHP5, pero mismos resultados no manda y solo obtengo como respuesta FALSE ... vamos que no carga el XML.
  #2 (permalink)  
Antiguo 04/07/2012, 02:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: webservice problemas al enviar un XML

Una pregunta, ¿para que estás codificando el XML en Base64?

Según entiendo debes pasarle el XML completo sin codificarlo, o al menos así lo pide el formato.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/07/2012, 03:35
 
Fecha de Ingreso: julio-2012
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: webservice problemas al enviar un XML

Cita:
Iniciado por pateketrueke Ver Mensaje
Una pregunta, ¿para que estás codificando el XML en Base64?

Según entiendo debes pasarle el XML completo sin codificarlo, o al menos así lo pide el formato.
Es que antes de descubrir que el problema estaba en "_" realice pruebas de todo tipo sin codificar, en varias lineas, en una linea, en fichero, escrito directamente...

Y es que se me acaban las pruebas

PD: Lo peor que coges el Soap UI 4.5 http://www.soapui.org/ realiza la configuración y el documento se manda y lo valida correctamente.

Intento pasarlo a PHP y nada error o se envía sin datos en las etiquetas.

Etiquetas: webservice, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.