Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/01/2011, 04:35
BoB_69
 
Fecha de Ingreso: enero-2011
Ubicación: Alkorkón
Mensajes: 1
Antigüedad: 13 años, 3 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!