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

WebDev Discussion :

Appel d'un webservice REST avec Tocken [WB24]


Sujet :

WebDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Appel d'un webservice REST avec Tocken
    Bonjour,

    Après quelques années passées a œuvrer vers d'autres horizons professionnels, je reviens à mes 1ers instants pros, le développement d'applications. Je développe donc maintenant sur Windev 24 et je suis actuellement sur une application WD24 qui communique avec un webservice tiers en REST avec Token (ou jeton).
    En PHP, j'arrive à communiquer avec cette API et j'obtiens bien la liste des civilités (pas très original, je sais mais si ca communique pour les civilités, le reste viendra ) mais pas sous WD24
    Le code en PHP est le suivant :

    Code php : 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
    <?php
    try {
        $baseUrl = "https://ypareo/netypareo/index.php";
        $jeton = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODYxMj ...";
        // REQUÊTE CONSULTATION
        //$url = $baseUrl . "/r/v1/civilites";
        // options de la session
        $options = [
        CURLOPT_URL => $url,
        CURLOPT_HTTPHEADER => [
        "X-Auth-Token: " . $jeton,
        "Content-Type: application/json"
        ],
        CURLOPT_RETURNTRANSFER => true
        ];
        // initialisation de la session
        $ch = curl_init();
        // configuration de la session
        curl_setopt_array($ch, $options);
        // exécution de la requête
        $response = curl_exec($ch);
        // fermeture de la session
    curl_close($ch);
    // affiche les donnees au format tableau
    $data = json_decode($response, true);
    print_r($data);
    }
    catch (RestException $e) {
    echo $e;
    }
    ?>

    Code en WD24 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    MonResultat est une chaîne
    maRequeteREST est une restRequête
     
    maRequeteREST..URL = "https://ypareo/netypareo/index.php/r/v1/civilites"
    maRequeteREST..AuthToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODYxMj ....."
    maRequeteREST..ContentType = "application/json"
     
    mareponseREST est une restRéponse = RESTEnvoie(maRequeteREST)
    info (mareponseREST )
    Impossible d'obtenir un retour de ce webservice. Quelqu'un peut-il me guider ,
    Je vous remercie par avance pour l'aide que vous pouvez m'apporter.
    Cordialement
    Stéphane

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 31
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Déjà je pense qu'il faudrait mettre plutôt ..contenu pour afficher le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info (mareponseREST..contenu)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci frankgth pour ton aide.
    Malgré cette modification, j'ai toujours le même message d'erreur qui est le suivant :

    Le passage du paramètre 1 a provoqué une erreur.
    Un élément de type 'chaîne ANSI' ne peut pas être converti vers le type 'avancé'

    sur la ligne 6 qui est celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maRequeteREST..AuthToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODYxMj ........."
    Encore merci de bien vouloir m'aider.
    Cordialement

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    C'est normal que cela ne fonctionne pas : Ton AuthToken est une variable de type... AuthToken pas une chaine : https://doc.pcsoft.fr/fr-FR/?1000022..._type_variable
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour frenchsting
    Merci pour ta réponse. J'avais déjà regardé ce lien mais ce que je ne comprends pas, c'est que pour l'authentification, il faut fournir plusieurs paramètres que je n'ai pas :

    Dans un des exemples fournis sur le lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    OAuth2Params est OAuth2Paramètres
    OAuth2Params..ClientID = "01234567890123456789"
    OAuth2Params..ClientSecret = "98765432109876543210"
    OAuth2Params..URLAuth = "https://www.dropbox.com/oauth2/authorize"
    OAuth2Params..URLToken = "https://api.dropboxapi.com/oauth2/token"
    OAuth2Params..ParamètresSupplémentaires = "force_reapprove=false"
    Moi je n'ai que la valeur du Token, je n'ai pas d'URLAuth ou d'URLToken, ni d'ailleurs de ClientID ...
    Du coup, ma requête n'abouti pas. De fait, je ne vois pas comment faire cette authentification

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    As-tu essayé de regarder les infos récupérées en utilisant soapui ou postman ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Essaye en passant le jeton directement dans l'entête de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    maRequeteREST est une restRequête
     
    maRequeteREST..URL = "https://ypareo/netypareo/index.php/r/v1/civilites"
    maRequeteREST..Entête["X-Auth-Token"] = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODYxMj ........."
    maRequeteREST..ContentType = "application/json"
     
    mareponseREST est une restRéponse = RESTEnvoie(maRequeteREST)
    Info(mareponseREST..CodeEtat)
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Tout d'abord, Merci frenchsting pour ta réponse. J'avais essayé, il y a quelque temps POSTMAN mais sans succès. Je ne connaissais pas SOAPUI, je vais regarder, j'avais pas trouvé Postman très intuitif ...
    philouZ, je vais tester ton code, effectivement, cela ressemble à ce que je peux avoir en PHP.
    Merci je teste et vous tiens informé
    Bonne journée

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Un grand merci à tous.
    philouZ, ton code fonctionne, je vais pouvoir avancer maintenant que la "mécanique" fonctionne.
    J'espère que je pourrais aider les autres comme vous venez de le faire.

    Bonne journée à tous

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

Discussions similaires

  1. Appel d'un Service REST avec paramètre String
    Par sebac dans le forum Services Web
    Réponses: 3
    Dernier message: 01/11/2014, 23h18
  2. interroger un webservice rest avec cURL
    Par lekunfry dans le forum Langage
    Réponses: 1
    Dernier message: 12/11/2012, 18h23
  3. WebService REST avec méthode POST
    Par tetsu no tama dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 18/04/2011, 16h19
  4. Appel d'un WebService Delphi avec WCF
    Par Tetranos dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 11/05/2009, 15h08
  5. Appel d'un webservice hebergé avec IIS
    Par Amokrane dans le forum Framework .NET
    Réponses: 1
    Dernier message: 24/03/2008, 15h40

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