Ciao a tutti. Dopo ore ed ore passate a cercare possibili soluzioni senza risultato mi sono deciso a chiedere aiuto qui nel forum.
Sto cercando di connettermi ad un servizio wsdl per ottenere dei dati; per farlo ho scaricato la libreria nusoap. Il server richiede l'autenticazione nell'header xml. Vi posto il codice (alcuni dati sono oscurati)
Codice PHP:
require_once('lib/nusoap.php');
$client = new nusoap_client('url_webservice.wsdl','wsdl', array('trace'=>true));$client->soap_defencoding = 'utf-8';$err = $client->getError();if ($err) { echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';}
$xml = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:we="http://schemas.url.com/Affiliation"> <SOAP-ENV:Header> <we:codes> <we:Code>94701</we:Code> <we:Culture></we:Culture> </we:codes> <we:affiliate> <we:Name>USER</we:Name> <we:Password>PASS</we:Password> </we:affiliate> </SOAP-ENV:Header> <SOAP-ENV:Body> <we:ListAllProducts/> </SOAP-ENV:Body></SOAP-ENV:Envelope>';
$result = $client->send($xml, '', '');
if ($client->fault) { echo '<h2>Fault</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>';
La risposta che ottengo è
[code]
codice:
=> WAOperationAuthenticationError
[Message] => Errore di autenticazione per l'operazione
Se invece eseguo sul server wsdl quell'xml con un editor tipo oxygen mi ritorna la risposta correttamente.
Vi ringrazio in anticipo.
P.S.
Scusatemi per l'indentazione ma quando ho pubblicato il messaggio mi ha sballato tutto....