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! |