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

Autres composants PHP Discussion :

[Zend_Rest_Client] le parametre "method" est il reservé ? desactivé le param arg1 ?


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 232
    Par défaut [Zend_Rest_Client] le parametre "method" est il reservé ? desactivé le param arg1 ?
    Bonjour,

    Je souhaiterais utiliser le client Zend_Rest_Client pour interroger l'API pikeo.

    Il semblerait que j'ai 2 soucis au niveau des parameters à envoyer à l'API Pikéo
    - l'API pikéo attends le parametre method avec comme valeur pikeo_test_echo
    - Zend génére le parametre "arg1" automatiquement dans la requete envoyé à l'API pikéo. Le souci est que Pikéo semblerait refuser ma requete sous prétexte qu'il y a un parametre "arg1" qu'il ne connait pas (cf mon message d'erreur dans mon exemple ci dessous)

    http://dev.pikeo.com/docs/API/pikeo_test_echo

    Tiré de l'exemple de l'appel de l'API pikéo, il faudrait j'envoie ce genre de parametre ...
    nonce=LTExMzA2OTIzMTc0NzMzODUzMw%3D%3D
    &timestamp=2007-12-11T15%3A29%3A08Z
    &api_key=your_api_key&api_sig=DPt8EH7Ay0IpE63N5UBvkdkNiUk%3D
    &method=pikeo.test.echo



    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
    //initilisation des parametres : 		
    $nonce = base64_encode ("hghg" . rand(0,99999999) . "fkfk");
    $api_key = 'mon_application';
    $method = 'pikeo.test.echo';
    $timestamp = date('Y-m-d\TH:m:s\Z');
    $secret = 'mon_code_secret';
    $api_sig = base64_encode ( sha1($nonce.$timestamp.$secret) );
     
    $client = new Zend_Rest_Client('http://api.pikeo.com/services/pikeo/v2/rest');		
     
    //passage des parametres en post 
    $client->method('pikeo.test.echo');
    $client->nonce($nonce);
    $client->timestamp($timestamp);
    $client->api_key($api_key);
     
    $result = $client->post();
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    echo "<br/>resultat =  " . $result->value();
    J'obtiens comme réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Zend_Rest_Client_Result Object
    (
        [_sxml:protected] => SimpleXMLElement Object
            (
                [fault] => SimpleXMLElement Object
                    (
                        [fault_code] => 5
                        [fault_message] => the parameter arg1 is unkown and should not be used
                    )
    
            )
    
    )

    Vous noterez que le premier appel de $client->arg('value1'); a eu comme conséquence method=arg&arg1=value1 et arg=value1 ; ceci afin que Zend_Rest_Server puisse comprendre la demande correctement, plutôt que d'exiger la connaissance préalable du service.
    http://framework.zend.com/manual/fr/...st.client.html

    Est ce que le parametre "method" est reservé à Zend ?

    Comment puis désactivé la génération du parametre arg1 par Zend ?

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Voilà ce que j'ai trouvé à la fin de la doc :
    Strictness of Zend_Rest_Client

    Any REST service that is strict about the arguments it receives will likely fail using Zend_Rest_Client, because of the behavior described above. This is not a common practice and should not cause problems.
    Je n'ai jamais utilisé Zend_Rest_Client donc je ne peux pas te dire s'il y a un moyen de contourner ce problème. J'ai trouvé ceci sur un forum anglophone :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $technorati = new Zend_Rest_Client('http://api.technorati.com/bloginfo?key=xxx&url=http://pixelated-dreams.com');
            print_r($technorati);
            $result = $technorati->get();
            print_r($result);
    Apparemment ça marche, mais ne semble pas très élégant

    Bon courage.

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

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