Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-02-2008 22:40:01

menou
Nouveau membre
Date d'inscription: 29-02-2008
Messages: 5

[RESOLU][Zend_XmlRpc][1.5.0RC1] Problème de syntaxe !

Bonjour,

Je suis nouveau sur ce forum (et sur Zend) et j'ai une question à propos de Zend_XmlRpc, j'espère que quelqu'un sera capable de m'aider.

Voilà j'ai déjà un projet existant en php avec de l'XML-RPC utilisant CURL et puisque je passe sous Zend, j'aimerai utiliser le Zend_XmlRpc.

Problème !

Déjà lors de l'encodage en XML pour l'envoi de la requête je n'obtiens pas le même résultat entre Zend_XmlRpc    et xmlrpc_encode_request !

L'appel :

Code:

    $params = array(
                'username' => 'admin',
                'password' => 'monpassword',
                'myusername' => 'admin',
                'service' => 'Sandbox.Method'
            );
          $client->call('fetch', $params);

Avec Zend_XmlRpc j'obtiens :


Code:

<?xml version="1.0" encoding="UTF-8"?>
  <methodCall>
     <methodName>fetch</methodName>
     <params>
       <param><value><string>admin</string></value></param>
       <param><value><string>monpassword</string></value></param>
        <param><value><string>admin</string></value></param>
       <param><value><string>Sandbox.Method</string></value></param>
      </params
</methodCall>

On dirait qu'il n'est pas capable de gérer les tableaux...

Alors qu'avec xmlrpc_encode_request ça marche correctement :

Code:

<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
  <methodName>fetch</methodName>
    <params>
      <param><value><struct>
<member><name>username</name>  <value>  <string>admin</string></value></member>
<member><name>password</name>  <value>  <string>monpassword</string>  </value>  </member> 
<member><name>myusername</name>  <value>  <string>admin</string>  </value>  </member>
<member><name>service</name>  <value>  <string>Sandbox.Method</string>  </value>  </member>       

      </struct></value></param>
   </params>
</methodCall>

Ensuite j'ai un soucis lors de la réception, je reçois bien le xml de mon serveur xml-rpc me disant que la requête est invalide (puisque Zend_XmlRpc l'a mal encodé..) MAIS lors du parsing du xml à la réception, je reçois une exception Zend_XmlRpc_Fault avec un error code de 1, plus exactement il plante à cet endroit :


Zend/XmlRpc/Response.php - Ligne ~177

Code:

        try {
            $xml = @new SimpleXMLElement($response);
        } catch (Exception $e) {
            // Not valid XML
            $this->_fault = new Zend_XmlRpc_Fault(651);
            $this->_fault->setEncoding($this->getEncoding());
            return false;
        }
        
        
        if (!empty($xml->fault)) { // !!! FAULT N'EST PAS VIDE !!!
            // fault response
            $this->_fault = new Zend_XmlRpc_Fault();
            $this->_fault->setEncoding($this->getEncoding());
            $this->_fault->loadXml($response);
            return false;
        }

Alors que si je fais un xmlrpc_decode de $response, j'obtiens bien le bon retour ... à savoir :

Code:

  array(
            faultCode => 42,
            faulString => 'error...'
 );

Si quelqu'un pourrait m'aider car je ne sais pas où chercher, j'aimerai éviter de modifier autant de code directement dans Zend...

Dernière modification par menou (01-03-2008 12:04:34)

Hors ligne

 

#2 01-03-2008 12:04:16

menou
Nouveau membre
Date d'inscription: 29-02-2008
Messages: 5

Re: [RESOLU][Zend_XmlRpc][1.5.0RC1] Problème de syntaxe !

Bon après une tentative de patch homemade j'ai finalement trouvé la solution ...

En fait bien que xmlrpc_encode_request l'accepte, pour Zend_XmlRpc_Client il faut lui passer :

Code:

    $params = array('value' =>
                array(
                'username' => 'admin',
                'password' => 'monpassword',
                'myusername' => 'admin',
                'service' => 'Sandbox.Method'
            ));

C'est peut-être bête mais il fallait le savoir ...
Ah et le truc sympa c'est qu'en fait il interprete l'erreur que me renvoit le serveur sous forme d'exception, donc ça c'est cool aussi.

Donc finalement rien à redire smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages