[Web Service] connexion a soap en php5
Bonjour à tous,
J'ai un travail a réaliser pour un client, je dois dans un premier temps tester l'enviroinment soap pour voir sir je recupere bien tous ce que j'ai besoin.
Le soucis c'est que je n'arrive pas à me connecter au web service voici le detail de la page php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| /** DEBUT DE LA CONNEXION WEBSERVICE **/
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
// Pour définir le temp maximal d'éxecution de notre web-service
ini_set('default_socket_timeout', 180);
// Mon login et mon password
define('MON_LOGIN', 'test');
define('MON_PASSW', 'test1');
define('MA_BASE', '1');
define('MA_LANGUE', '1');
// liste soptions lors de la connexion
$options = array(
'exceptions' => true,
'trace' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
);
// Nouveau Client SOAP
try
{
// Nouvelle instance de la classe soapClient
$soap = new SoapClient('http://www?exemple.fr/FrontSoapPort?wsdl', $options);
// Si c'est ok ?
echo 'Le web service est en route :';
// Les tests du web service
//var_dump($soap->ParameterList()); //Affiche les parametres disponibles
//var_dump($soap->__getFunctions()); //Affiche les fonctions disponibles
//var_dump($client->__getTypes()); //Affiche tous les types du wsdl
// Appel de la méthode LoginExecute du service web pour se connecter au web service
try
{
$parameters = array(
'inUserName' => MON_LOGIN,
'inPassword' => MON_PASSW,
'inBaseId' => MA_BASE
);
//Action :: On initialise la connexion au web service
$connexion = $soap->__soapCall('LoginExecute', array($xml_string, $parameters));
//$login = $soap->LoginExecute('loginUtilType', $parameters);
/*var_dump($login);
exit;*/
//Action :: Je liste les codes civilité
$code = $soap->CodeCivilityList('CodeCivilityListType', '1');
// Debug :: requete qui revient et requete qui repart
//[Debug]
echo "<pre>";
print "Request: \n" . htmlspecialchars($soap->__getLastRequestHeaders()) . "\n\r";
print "Request: \n" . htmlspecialchars($soap->__getLastRequest()) . "\n\r";
echo "--------------------------------------------------\n\r";
print "Response: \n" . htmlspecialchars($soap->__getLastResponseHeaders()) . "\n\r";
print "Response: \n" . htmlspecialchars($soap->__getLastResponse()) . "\n\r";
echo "</pre>";
//[/Debug]
if ($code->error)
{
//var_dump($code);
}
if ($login->outUser == true)
{
echo "Ma connection est bonne ?";
}
else
{
echo "pas connecté";
}
//print_r($login);
}
catch (SoapFault $fault)
{
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
}
catch (SoapFault $fault)
{
echo 'erreur : ' . $fault;
}
/** FIN DE LA CONNEXION WEBSERVICE **/ |
et voici le retour :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Request:
POST /exemple_front_ws/FrontSoapPort HTTP/1.1
Host: www.exemple.fr
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.2-1ubuntu4.11
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://types.exemple.net/CodeCivilityList"
Content-Length: 254
Request:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://types.exemple.net"><SOAP-ENV:Body><ns1:CodeCivilityList/><param1>1</param1></SOAP-ENV:Body></SOAP-ENV:Envelope>
Response:
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:CodeCivilityListResponse xmlns:ns2="http://types.exemple.net"><header/><error><errorNumber>-2</errorNumber><errorDescription>Login fault</errorDescription><errorObjectId>0</errorObjectId><exceptionType>com.exemple.webapp.exception.BusinessFaultException</exceptionType><exceptionMessage></exceptionMessage><exceptionDetails>nullnet.exemple.impl.CodeSoapImpl.codeCivilityList(CodeSoapImpl.java:42) |
Voilà le soucis j'ai essayé de me connecter par tous les moyens mais ??? est ce que vous auriez une idée ? merci