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][SOAP] SoapClient : utilisation


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [Web Service][SOAP] SoapClient : utilisation
    Bonjour,

    Je suis en train de réaliser une application qui doit utiliser un service web afin d'envoyer des sms. Pour ce faire, j'utilise le service "aspsms.com".

    J'ai créé un premier script qui utilise SoapClient. Cependant, quelque chose m'échappe lors de l'appel d'une méthode sur le serveur. J'ai testé les deux variantes possibles mais je n'obtiens pas le même résultat.

    Script 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
     
    	$client = new SoapClient("https://webservice.aspsms.com/aspsmsx.asmx?WSDL", array('trace' => 1, 'soap_version' => SOAP_1_2));
     
     
    	$obj = $client->CheckCredits("userkey", "password");
     
    	echo $client->__getLastRequest() . "\n";
     
    	$param = array(array(
    	  "UserKey" => "userkey",
    	  "Password"  => "password"
    	  ));
     
    	$obj = $client->__soapCall("CheckCredits", $param);
     
    	echo $client->__getLastRequest() . "\n";
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservice.aspsms.com/"><env:Body><ns1:CheckCredits/><param1>password</param1></env:Body></env:Envelope>
     
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservice.aspsms.com/"><env:Body><ns1:CheckCredits><ns1:UserKey>userkey</ns1:UserKey><ns1:Password>password</ns1:Password></ns1:CheckCredits></env:Body></env:Envelope>
    Constatation :
    La première requête n'est pas valide... La seconde fonctionne parfaitement.

    Question :
    Pourquoi la première méthode utilisée ne génère pas la même requête que la seconde ? Ai-je fais une faute ?

    Merci d'avance...

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Bonjour !

    Perso j'ai toujours utilisé ta deuxième méthode, c'est-à-dire passer par la fonction soapCall.
    Pour la première c'est un peu bizarre, il comprend le 2e paramètre comme le premier et l'unique. A mon avis si tu veux utiliser la premiere méthode, il faut trouver la bonne syntaxe.

    Essaie de faire des tests du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $obj = $client->CheckCredits($param);
    $obj = $client->CheckCredits(array("Userkey"=>"userkey", "Password"=>"password");
    // Un premier paramètre à trouver...
    $obj = $client->CheckCredits( ??, array("Userkey"=>"userkey", "Password"=>"password");
    Enfin voila.
    Mais bon si la 2e méthode fonctionne pourquoi te poser des questions comme ca ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse... Je me suis posé la question par curiosité...

    Mais je vais utiliser la seconde solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser un objet dans un Web Service Soap Client
    Par benny-blanco dans le forum Services Web
    Réponses: 1
    Dernier message: 19/04/2012, 09h23
  2. Réponses: 4
    Dernier message: 18/04/2012, 21h39
  3. [Tutoriel] Utilisation du web service SOAP sous Android
    Par David55 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 28/08/2011, 12h07

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