Ciao a tutti,
premetto che non sono un grande esperto di SOAP quindi è possibile che stia tralasciando qualcosa di banale.
Ad ogni modo la mia necessità è collegarmi ad un WSDL, che raggiungo correttamente via browser, e che sta su un server pubblicato in HTTPS. Basandomi su un collegamento ad un altro WSDL che utilizzo, che però è pubblicato in HTTP, e che funziona faccio questo:
Codice PHP:
$url = "https://geniocom.it/bbi-api/services/Bbi?wsdl";
try{
$client = new SoapClient($url,array(
"login"=>"68SI5E51So3e946\8eOpee6rateore0",
"password"=>"xxxxxx",
"connection_timeout"=>25,
"location"=>$url,
"trace"=>1
));
print_r($client->__getFunctions());
}catch (SoapFault $exception){
echo '<pre>EXCEPTION='.$exception.'</pre>';
}
Quello che ricevo è questo:
Codice PHP:
EXCEPTION=SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://geniocom.it/bbi-api/services/Bbi?wsdl' : failed to load external entity "https://geniocom.it/bbi-api/services/Bbi?wsdl"
in /var/www/html/spotter/test.php:64
Stack trace:
#0 /var/www/html/spotter/test.php(64): SoapClient->SoapClient('https://genioco...', Array)
#1 {main}
Un paio di considerazioni. Dato che il WSDL che sto attualmente utilizzando senza problemi non richiede autenticazione, è un aspetto che non conosco. Quindi gugolando ho provato queste combinazioni di parametri:
1. login - password (come nel codice postato)
2. proxy_login - proxy_password
3. user - password (nomi usati nel WSDL)
Inoltre, dato che il nome utente contiene un \ ho supposto anche che fosse un problema di escape quindi ho provato a lasciare il nome originale, ad utilizzare \\ e anche \\\ ed ho due situazioni.
1. col nome originale usando i parametri "proxy_login - proxy_password" l'errore è lo stesso di prima.
2. usando i parametri "login - password" se metto \\\ l'errore rimane uguale mentre col nome originale e con \\ l'errore diventa
Codice PHP:
EXCEPTION=SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: unexpected in element in /var/www/html/spotter/test.php:67
Stack trace:
#0 /var/www/html/spotter/test.php(67): SoapClient->SoapClient('https://genioco...', Array)
#1 {main}
AIUTO! Cosa sto missando????
Grazie in anticipo