Ciao a tutti,
ho la necessità di sviluppare un semplice client di connessione ad un WS in php, ma non ho molta esperienza in merito e sto incontrando dei problemi.
Ho la documentazione, gli schemi XSD e WSDL, un endpoint e le credenziali di accesso (username e password).
Innanzitutto non so bene come utilizzare l'endpoint che mi hanno fornito.
Ecco quello che faccio:
Codice PHP:
<?php
ini_set('soap.wsdl_cache_enabled','0');
ini_set('memory_limit','1024M');
ini_set('default_socket_timeout', 1000);
ini_set('time_limit', 10000);
ini_set('max_execution_time',1000);
ini_set('soap.wsdl_cache_ttl',0);
$login = 'XXX';
$password = 'XXX';
echo $wsdl = $path.'AlboProfessionale.wsdl';
$endpoint = 'https://XXX/XXX/AlboProfessionale/';
try{
$client = new SoapClient($wsdl, array(
'encoding' =>'UTF-8',
//'location' => $endpoint,
//'uri' => $endpoint,
'login' => $login,
'password' => $password,
'trace' => 1,
'connection_timeout'=> 1000
));
//$client->__setLocation($endpoint);
$result = $client->Inserimento($xml);
echo '<pre>';
print_r($result);
echo '</pre>';
}
catch (SoapFault $exception){
echo '<pre>';
print_r($exception);
echo '</pre>';
}
print "Request :\n".htmlentities($client->__getLastRequest()) ."\n";print "<hr>";
print "Response:\n".htmlentities($client->__getLastResponse())."\n";
?>
Le parti commentate sono i tentativi che ho fatto di collegarmi tramite l'endpoint, senza successo:
Codice PHP:
//'location' => $endpoint,
//'uri' => $endpoint,
//$client->__setLocation($endpoint);
Come risposta ottengo questo:
codice:
SoapFault Object
(
[message:protected] => Could not connect to host
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /Users/www/xxx.it/client_test.php
[line:protected] => 61 [trace:Exception:private] => Array
Quindi, in pratica, non si collega all'host.
Chi ha sviluppato il WS non riceve alcuna chiamata.
Il WS funziona e ho potuto testarlo con un XML di esempio che mi hanno fornito usando come client SoapUI (5.3.0).
Cosa sbaglio?
Chi sa darmi qualche dritta?!

Grazie in anticipo,
David