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

Langage Delphi Discussion :

Récupérer contenu d'une page web


Sujet :

Langage Delphi

  1. #1
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut Récupérer contenu d'une page web
    Bonjour,

    J'essaye de récupérer le contenu d'une page web (le flux json d'une api rest) et je galère.

    Avant tout :
    • l'adresse du site est en https (Jira, site d'entreprise)
    • le sso est mis en place, à la première connexion il faut choisir son entité avant d'accéder au site


    J'ai essayé tout simplement avec un TIdHTTP (après avoir récupéré sur le site indy.fulgan les dll ssl)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFMain.Button1Click(Sender: TObject);
    var
      lHTTP: TIdHTTP;
      res: string;
    begin
      lHTTP := TIdHTTP.Create;
      try
        res := lHTTP.Get(edApi.Text);
        Memo1.Lines.Add(res);
      finally
        lHTTP.Free;
      end;
    end;
    Résultat : Erreur HTTP 1.1 400

    J'ai essayé avec un Cookie mais même erreur ..

    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
    procedure TFMain.Button3Click(Sender: TObject);
    var
       HTTP : TIDHTTP;
       Cookie : TidCookieManager;
       res: string;
    begin
       try
          HTTP := TIDHTTP.Create(nil);
          Cookie := TidCookieManager.Create(nil);
     
          HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';
          HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
          HTTP.Request.AcceptLanguage := 'en-us;q=0.7,en;q=0.3';
          HTTP.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
          HTTP.Request.Pragma := 'no-cache';
          HTTP.Request.CacheControl := 'no-cache';
          HTTP.Request.RawHeaders.Add('X-Requested-With: XMLHttpRequest');
          HTTP.AllowCookies := True;
          HTTP.HandleRedirects := True;
          HTTP.ProtocolVersion := pv1_1;
          HTTP.Request.Connection := 'Keep-Alive';
          HTTP.CookieManager  := Cookie;
     
          res := http.Get(edApi.Text);
          Memo1.Lines.Clear;
          Memo1.Lines.Add(res);
       finally
          FreeAndNil(Cookie);
          FreeAndNil(HTTP);
       end;
    end;
    Un outil d'extraction écrit en JAVA existe déjà par contre il faut ouvrir un premier coup le site avec Google Chrome car ensuite il utilise le fichier .cookies.db

    Même si je dois faire la même chose sur le miens c'est pas top mais c'est pas grave si cela fonctionne

    Avez-vous une idée ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 119
    Points : 41 252
    Points
    41 252
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    ce qui m'interpelle c'est :
    (le flux json d'une api rest)
    tout dépend de la version de Delphi, mais avec Rio ou Tokyo, seules versions avec lequel j'ai fait ce genre de chose utiliser les composants RESTClient
    si tu as une de ces versions alors RestDebuger est à ta disposition (outils/débogueur rest) . Tu testes l'adresse, tu y ajoutes au besoin l'identification et même la racine de tes données.
    Une option de copie (bouton copier les composants) te permet ensuite de récupérer les composants nécessaires que tu as juste à copier dans un datamodule
    Nom : Capture.PNG
Affichages : 239
Taille : 8,4 Ko
    un ajout d'une table mémoire Firedac et le tour est joué (un jeu d'enfant)

  3. #3
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Ah oui

    Je suis en 10.2 je test et je te tiens au courant

    Merci !

Discussions similaires

  1. Récupérer contenu d'une page web
    Par cultureman dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2015, 15h22
  2. [Débutant] Récupérer contenu d'une page web
    Par diaz987 dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/05/2014, 11h12
  3. récupérer le contenu d'une page web
    Par marielaure2805 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 13h12
  4. Récupérer le contenu d'une page web
    Par smarties dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 13/02/2007, 01h25
  5. [Servlet]Récupérer le contenu d'une page web
    Par Jarodnet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 06/10/2005, 15h47

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