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] la consommation d'un web service


Sujet :

Bibliothèques et frameworks PHP

  1. #21
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 15
    Points
    15
    Par défaut SoapCall
    Il faut que tu remplace FonctionName par le nom de ta fonction.

    tu as tester avec le code ci-dessous?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $wsdl="http://127.0.0.1:8888/word/wp-content/nouveau dossier/converti.wsdl";
    $service=new SoapClient($wsdl);
    $params= XXXX; // remplace les XXX par le paramètre à transmettre a ta fonction
    $retour_ws=$service->__soapCall("getconvertiResponse", $params);
    echo '<pre>',$retour_ws, '</pre>';
    Je décolle du boulot donc à ce soir ou dans le weekend.
    regarde ces pages si cela peut t'aider...
    http://vivien-brissat.developpez.com...iels/php/soap/
    http://www.php.net/manual/fr/class.soapclient.php
    http://www.waanser.com/web-20/2346-w...-avec-php.html
    http://fr.wikibooks.org/wiki/Program...les/webService

  2. #22
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    stealth35
    il est vrais que cela ne fonctionne pas avec ou sans, mais j'arrive a un stade ou je suis assez embrouillé.

    aurait-tu une idé de la source de mon problème?

  3. #23
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 15
    Points
    15
    Par défaut Consommation d'un Web Service argument type array()
    Bonjour,
    J'ai enfin réussi à avoir un retour correct avec le code ci-dessous:
    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
    <?php
    try {
    	// création du client
    	$client_ws = new SoapClient(
    		'http://dalyo.com/server/services/Data?wsdl',
    		array(
    			'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
    			'soap_version' => SOAP_1_1,
    			'encoding' => 'utf-8',
    			'trace' => 1,
    			'exceptions' => false,
    			'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
    			)
    	);
     
    	// paramétrage de la requête d'écrit dans le WSDL 
    	$queryXml = '<Query><Select all="true"/></Query>';
    	$appId = XXXX;
    	$login = 'XXXX';
    	$password = 'XXX';
    	$tableId = XXXX;
     
    	$params = array('request' => array(
                                                                     'appId' => $appId,
                                                                     'queryXml' => $queryXml,
                                                                     'login' => $login,
                                                                     'password' => $password,
                                                                     'tableId' => $tableId	
     
                                                                     )
    	                           );
     
    	// appel du service
    	$retour_ws = $client_ws->WS_Query($params);
    	echo '<pre>' . htmlspecialchars(print_r($retour_ws, true)) . '</pre>';
    }
    catch (Exception $e) {
    	die('<pre>' . htmlspecialchars($e) . '</pre>');
    }
    ?>
    Même si cette solution est très personnalisé dû aux spécifications du WSDL qui est propre a chaque structure, j'espère que cela sera utiles pour quelques un.

  4. #24
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Le client m'a fait parvenir des certificats d’authentifications que j'arrive pas à le mettre de mon script pour pouvoir consommer le WS que j'ai

  5. #25
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Je souhaiterais pouvoir étudier ton fichier wsdl et ton .php qui appelle le WS si possible.
    Car il faut que tu définisse les éléments nécessaires pour effectuer la connexion. Cela devrais être dans un DTD (Document Type Definition)
    Les certificats d’authentifications, c'est un identifiant et un mot de passe?

    Chaftcbr

  6. #26
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par sergeberge Voir le message
    je suis entrain de tt mélangé , je veux créer un script qui me permet d'effectuer un test d'éligibilité

    j'utilise ce script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $wsdl="eli.wsdl";
    $service=new SoapClient($wsdl);
     
    echo '<pre>',print_r($service->__getfunctions(), true),'</pre>';
    le client m'a fait parvenir un fichier xml (eli.wsdl) et des certificat d’authentifications(ssl) mais je suis carrément bloqué et j'arrive pas à déterminer l'url du ws pour l'interroger

  7. #27
    Membre à l'essai
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    en ce qui concerne le test d'éligibilité je pourrais pas t'aider...
    mais si tu sais que ton WS a ces fonctionnalités pourquoi pas.

    Tout d'abord ton fichier wsdl permet de lister les fonctionnalités de ton WS
    il doit être transmit en paramètre lors de la création (new) du WS. Sur mon projet le WSDL est sur un serveur distant et lisible via une URL finisant par .WSDL

    le serveur permettant d'effectuer le test est une machine que tu as ou c'est un serveur distant ?

    Peut-tu me monter ton wsdl?
    Ton code sous-entend que le fichier WSDL est dans le même répertoire que ton script est-ce exact?

    chaftcbr

  8. #28
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    j'ai fait des progrès mais je me bloque sur l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: SoapClient::__doRequest() [soapclient.--dorequest]: send of 661 bytes failed with errno=10054 Une connexion existante a dû être fermée par l'hôte distant. in C:\Documents and Settings\yes\Mes documents\wordpress\wp-content\Nouveau dossier\sol2.php on line 16
     
    Fatal error: Uncaught SoapFault exception: [HTTP] Failed Sending HTTP SOAP request in C:\Documents and Settings\yes\Mes documents\wordpress\wp-content\Nouveau dossier\sol2.php:16 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https:......', '', 1, 0) #1 C:\Documents and Settings\yes\Mes documents\wordpress\wp-content\Nouveau dossier\sol2.php(16): SoapClient->__call('getconverti', Array) #2 C:\Documents and Settings\yes\Mes documents\wordpress\wp-content\Nouveau dossier\sol2.php(16): SoapClient->getconverti(Array) #3 {main} thrown in C:\Documents and Settings\yes\Mes documents\wordpress\wp-content\Nouveau dossier\sol2.php on line 16
    voila le code que j'utilise
    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
     
    <?php 
    ini_set('soap.wsdl_cache_enabled', 0);
    $wsdl = "converti.wsdl";
    $location = "https:......";
    $certsClient = "keys.pem";
    $passPhraseClient = "...";
    $certsServeur = "cert.pem";
    $context = stream_context_create(array("ssl" => array("verify_peer" => true,"cafile" => $certsServeur)));
    $client = new SoapClient($wsdl,array("trace" => 1,"soap_version" => SOAP_1_1,"location" => $location,"local_cert" => $certsClient,'passphrase' => $passPhraseClient));
    $request= array('....'=>'....',
                     '......'=>'....',
    				 '......'=>'......',
    				 '.......' =>'.......',
    				 '.......'=>'.....' ); 
    	$retour_ws = $client->getconverti($request);
    	echo '<pre>',print_r($retour_ws, true) , '</pre>';
    ?>

Discussions similaires

  1. Client .Net consommant web service en php
    Par Tsubasa dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 05/05/2007, 09h58
  2. Consommation service Web sous Vista
    Par sandre dans le forum C#
    Réponses: 14
    Dernier message: 16/03/2007, 19h11
  3. [AXIS] Consommer un service web PHP
    Par Nicoin dans le forum Services Web
    Réponses: 7
    Dernier message: 18/02/2006, 16h43
  4. Comment consommer un web service en java
    Par Vins83 dans le forum Services Web
    Réponses: 1
    Dernier message: 16/01/2006, 23h33
  5. [WebServices] consommer des services web ?
    Par Nycos62 dans le forum Services Web
    Réponses: 3
    Dernier message: 12/04/2005, 13h13

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