Foros del Web » Programación para mayores de 30 ;) » Programación General »

SOAP con XML incrustado ?

Estas en el tema de SOAP con XML incrustado ? en el foro de Programación General en Foros del Web. Necesito generar un fichero WSDL para enviar un fichero xml a un servicio web mediante soap. Me explico, quiero hacer un servicio web que recibe ...
  #1 (permalink)  
Antiguo 31/12/2010, 16:42
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
SOAP con XML incrustado ?

Necesito generar un fichero WSDL para enviar un fichero xml a un servicio web mediante soap.

Me explico, quiero hacer un servicio web que recibe por parámetro el contenido de un fichero xml, para ello tengo que crear el fichero wsdl con la descripción de las operaciones. El problema es que no sé como configurar dicho fichero para que me acepte un texto con secuencias de escape, necesitaría que el parámetro "tragara" un texto con cualquier tipo de carácter, tipo CDATA de xml.


Pero no sé como hacerlo, ayuda plis.
  #2 (permalink)  
Antiguo 11/01/2011, 12:18
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: SOAP con XML incrustado ?

Ya veo que nadie lo sabe. Es imposible
  #3 (permalink)  
Antiguo 14/01/2011, 07:09
 
Fecha de Ingreso: enero-2011
Ubicación: Bilbao
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: SOAP con XML incrustado ?

Cita:
Iniciado por subsoho Ver Mensaje
Ya veo que nadie lo sabe. Es imposible
Muy buenas,

Me acabo de registrar porque yo también estoy intentando hacer lo mismo que tú.

Si no he entendido mal, quieres hacer un servicio web en el que el cliente reciba un XML de parte del servidor no?
Puedes hacer una función en el servidor que convierta el árbol interno de un XML en un string, y que el service devuelva ese string.
Pero claro, no puedes hacerlo así directamente puesto que tienes que codificar el envío y luego en el cliente descodificarlo.

Sabrías como hacerlo?
  #4 (permalink)  
Antiguo 31/01/2011, 04:35
 
Fecha de Ingreso: enero-2011
Ubicación: Alkorkón
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: SOAP con XML incrustado ?

Wenass,

estaba buscando un poquito de información al respecto, pero como veo que no lo habeis resuelto y a mi me dio muchos quebraderos de cabeza os pego el código que a mi me funcionó:

Código:
<?php
  $proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
  $proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
  $proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
  $proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';


  $webServiceURL = "URL_DEL_SERVICIO_WSDL";
  $parametro1 = 'parametro2';
  $parametro2 = 'parametro2';
  $parametro3 = 'parametro3';


  $client = new soapclient($webServiceURL, false, $proxyhost, $proxyport, $proxyusername, $proxypassword);

  $err = $client->getError();
  if($err){echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';}

// Lista de parámetros requeridos
  $params = array("parametro1" => $parametro1,
                  "parametro2" => $parametro2,
                  "parametro3" => $parametro3
                  );

// Se puede cambiar $params por un load de un archivo XML
  $result = $client->call('FUNCION_QUE_QUIERES_EJECUTAR', $params);


  if($client->fault)
  {
    echo '<h2>Fault (This is expected)</h2><pre>';
    print_r($result);
    echo '</pre>';
  }else{
    $err = $client->getError();
    if($err)
    {
      echo '<h2>Error</h2><pre>' . $err . '</pre>';
    }else{
      echo '<h2>Result</h2><pre>';
      print_r($result);
      echo '</pre>';
    }
  }

  echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
  echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
  echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';

// En mi caso almaceno la respuesta en un archivo XML para luego tratarla

$fp = fopen('data.xml', 'w+');
fwrite($fp, $client->response);
fclose($fp);
?>
Con esto debería cargaros los servicios sin problemas.

Salu2!

Etiquetas: soap, 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 15:41.