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

Web & réseau Delphi Discussion :

REST Api et utilisation de cookie


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    228
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 228
    Points : 113
    Points
    113
    Par défaut REST Api et utilisation de cookie
    Bonjour,

    Je dois récupérer des données d'un cloud et en utilisant le REST Api. Pour cela, l'hébergeur des données m'a transmis une brève documentation de son API pour l'accès et la récupération des données.

    Sous Delphi 11, j'utilise les composants REST (TRESTClient, TRESTRequest et TRESTResponse) et j'arrive à me logguer au Cloud. Ensuite, lorsque je veux accéder à mes données, la réponse à la requête me renvoie une erreur :
    "ErrorCode" : "non autorisé",
    "ErrorMessage" : "Vous devez être connecté."
    L'information qui manquait dans la doc et que j'ai eu ensuite est qu'après le login, toutes les autres requêtes sont authentifiées par un cookie:
    Tries to login with the username and password. Use the cookie that's returned to authenticate the other requests.
    Le TRESTClient a la propriété AllowCookies à True et on peut lui définir un paramètre TRestRequestParameter de type pkCookie.
    Le TRESTRequest propose rvAllowCookies pour la propriété AssignValues.

    Est-ce ces paramètres que je dois utiliser ? Si oui, quand et comment le renseigner ?
    Mes premiers essais n'ont pas été concluants

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Si tu as le cookie, c'est un simple fichier texte, je n'ai jamais utilisé cela mais ajoute le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyRESTRequest.AddParameter(MyCookieName, MyCookieText, TRESTRequestParameterKind.pkCOOKIE);
    Tu dois avoir une procédure pour l'obtenir pour un mode hors WebBrowser, sinon je ne vois pas comment cette API fonctionne, ils n'ont pas d'exemple PostMan ou cURL ?


    Il n'y a rien de plus moderne comme plutôt un Bearer Auth avec Token ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    228
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 228
    Points : 113
    Points
    113
    Par défaut
    Bonjour ShaiLeTroll,

    Merci pour ta réponse. Malheureusement pour l'instant rien de plus moderne que le cookie.

    Si tu as le cookie, c'est un simple fichier texte
    Le problème était là, je ne savais pas comment récupérer le cookie. Est-ce que celui-ci est crée automatiquement si le login est bon ? Si oui, est-il placé en mémoire ou sur disque ?

    En fait la solution est simple: lorsque RESTRequest1.Execute s'effectue avec succès, le composant TRESTResponse contient une liste TCookies de TCookie.

    TCookies contient les infos du(des) cookie(s) (name, value) à réutiliser par la suite:
    Nom : Capture d’écran 2024-03-21 152936.png
Affichages : 43
Taille : 9,7 Ko

    Merci pour ton aide

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/09/2016, 15h29
  2. Recherche API d'utilisation irda
    Par elitost dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 17/08/2006, 13h00
  3. [Cookies] Utilisation des cookies
    Par baleiney dans le forum Langage
    Réponses: 4
    Dernier message: 07/07/2006, 20h48
  4. Réponses: 5
    Dernier message: 22/03/2006, 14h54
  5. [web] utilisation de cookie
    Par jim236 dans le forum Web
    Réponses: 2
    Dernier message: 11/06/2004, 23h12

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