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 : Problème sur le header


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Web Service] SOAP : Problème sur le header
    Bonjour,

    Je suis en train de jouer avec les Webservices notamment SOAP, j'arrive bien a faire communiquer mes petits jusqu'au moment ou je veux jouer avec les entêtes.

    Lorsque que j'utilie le logiciel Oxygen pour tester mon WSDL, il me propose bien comme entête le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <SOAP-ENV:Header>
            <_w:Credentials>
                <_w:Login>STRING</_w:Login>
                <_w:Password>STRING</_w:Password>
            </_w:Credentials>
        </SOAP-ENV:Header
    Quand je remplis le login et le mot de passe, c'est correctement récupéré coté serveur, et correctement traité.

    Mais voila, le problème est du côté client en php, j'ai essayé toutes les variantes que j'ai pus trouver sur le web, et la méthode "Credentials" n'est pas appelée

    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
    $Login = 'test';
    $Password = 'pass';
     
    $wsdl = 'test2.wsdl';
    $namespace = 'http://localhost/_webservices/';
     
    $Credentials = array(
            'Login' =>new SOAPVar($Login, XSD_STRING, null, null, null, $namespace),
            'Password' =>new SOAPVar($Password, XSD_STRING, null, null, null, $namespace),
    );
     
    $test = new SoapClient(
        $namespace.$wsdl,
        array(
            'trace' => 1,
            'soap_version' => SOAP_1_2,
            'style' => SOAP_RPC,
            'encoding' => SOAP_LITERAL,
            'cache_wsdl' => WSDL_CACHE_NONE
        )
    );
     
    $headerBody = new SOAPVar($Credentials, SOAP_ENC_ARRAY);
    $header = new SOAPHeader($namespace, 'Credentials', $headerBody);
     
    $test->__setSOAPHeaders($header);
     
    $listeType = $test->GetTypeFichiers();
     
     
     
    print('<pre>');var_dump($test);print('</pre>');
    voila le retour du var_dump :

    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
    object(SoapClient)#3 (4) {
      ["trace"]=>
      int(1)
      ["_soap_version"]=>
      int(2)
      ["sdl"]=>
      resource(3) of type (Unknown)
      ["__default_headers"]=>
      array(1) {
        [0]=>
        object(SoapHeader)#5 (4) {
          ["namespace"]=>
          string(43) "http://ogfdev.auxia.lan/david/_webservices/"
          ["name"]=>
          string(11) "Credentials"
          ["data"]=>
          object(SoapVar)#4 (2) {
            ["enc_type"]=>
            int(300)
            ["enc_value"]=>
            array(2) {
              ["Login"]=>
              object(SoapVar)#1 (3) {
                ["enc_type"]=>
                int(101)
                ["enc_value"]=>
                string(3) "ogf"
                ["enc_namens"]=>
                string(43) "http://ogfdev.auxia.lan/david/_webservices/"
              }
              ["Password"]=>
              object(SoapVar)#2 (3) {
                ["enc_type"]=>
                int(101)
                ["enc_value"]=>
                string(4) "Pass"
                ["enc_namens"]=>
                string(43) "http://ogfdev.auxia.lan/david/_webservices/"
              }
            }
          }
          ["mustUnderstand"]=>
          bool(false)
        }
      }
    }
    Je tourne en rond depuis ce matin à essayer d'envoyer les données au bon endroit, mais la je bloque.

    Merci d'avance

  2. #2
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Cherchez plus, dans mon namespace j'avais un / de trop, le bon code client était :

    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
    $Login = 'test';
    $Password = 'pass';
     
    $wsdl = 'test2.wsdl';
    $namespace = 'http://localhost/_webservices';
     
    $Credentials = array(
            'Login' =>new SOAPVar($Login, XSD_STRING, null, null, null, $namespace),
            'Password' =>new SOAPVar($Password, XSD_STRING, null, null, null, $namespace),
    );
     
    $test = new SoapClient(
        $namespace.'/'.$wsdl,
        array(
            'trace' => 1,
            'soap_version' => SOAP_1_2,
            'style' => SOAP_RPC,
            'encoding' => SOAP_LITERAL,
            'cache_wsdl' => WSDL_CACHE_NONE
        )
    );
     
    $headerBody = new SOAPVar($Credentials, SOAP_ENC_ARRAY);
    $header = new SOAPHeader($namespace, 'Credentials', $headerBody);
     
    $test->__setSOAPHeaders($header);
     
    $listeType = $test->GetTypeFichiers();
     
     
     
    print('<pre>');var_dump($test);print('</pre>');

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

Discussions similaires

  1. [Web Service][SOAP] Problème d'authentification
    Par Maelenkolix dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 13/08/2009, 08h55
  2. [Web Service][SOAP] Problème avec les cookies
    Par bilel.1st dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 12/05/2008, 17h30
  3. [Web Service][SOAP] Problème de formatage du message
    Par Boon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/02/2008, 20h50
  4. [Web Service][SOAP] Problème Web Service
    Par goddet dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/10/2007, 10h12
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

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