IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] connexion a soap en php5


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 87
    Points : 48
    Points
    48
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est bien de convertir les SOAP Fault en erreur PHP (quoique...) mais il faudrait pas oublier d'afficher les erreurs pour débugger...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    ini_set('display_error', 1);
    error_reprting(-1);

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    Merci,

    En fait que j'essaie de me connecter sur l'env soap de manière traditionnelle ou en nusoap impossible de recuperer un réponse cohérente pour me connecter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    try
    {
    	// connexion a la librairie de nusoap
    require_once($_SERVER['DOCUMENT_ROOT'].'/nusoap/lib/nusoap.php');
     
    // connexion au service wsdl
    $serverpath ='http://www.exemple/WebAppFrontSoapPort?wsdl';
     
    // Action :: parametre de connexion
    $param = array('InUserName' => 'test',
    			   'InPassword' => 'test',
    			   'InbaseId' => '1');
     
     
    // Connexion au soap
    $soap = new soapclient($serverpath, $options);
     
    // Appel de la methode "loginExecute"
    $result = $soap->__Call('LoginExecute', array($param));
    et ma requete me montre que deja la balise LoginExecute est fermée et en reponse je ne recois aucune erreur et pas de contenu ??

    est ce que le dev de l’environnement soap lorsqu'il a fait son wsdl ne se serait pas trompé

    Est qu'il faudrait que j'envoie les données en xml pour quelles soient prises en compte ??

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    faut pas utiliser __call pour SOAP

    c'est direct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $soap->LoginExecute($param);
    c'est fait exprès pour ça le SOAP

Discussions similaires

  1. [Web Service] Utilisation de SOAP
    Par riete dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 06/08/2009, 10h08
  2. [Web Service] Connexion membre à l'aide d'un service web
    Par infiniti dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/07/2009, 14h07
  3. [Web Service] Erreur WSDL, SOAP-ERROR: Parsing WSDL
    Par legide dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 14/03/2009, 12h03
  4. [Web Service] Appel Webservice SOAP
    Par HaTnuX dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/08/2008, 22h33
  5. Réponses: 5
    Dernier message: 15/04/2008, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo