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

Delphi Discussion :

IdTCPClient : Récupérer fichier HTTP ?


Sujet :

Delphi

Vue hybride

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

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut IdTCPClient : Récupérer fichier HTTP ?
    Bonjour,

    Voici mon code :
    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
         sLigne    : string;
    begin
         IdTCPClient1.Host := 'google.fr';
         IdTCPClient1.Port := 80;
         try
              IdTCPClient1.Connect;
              IdTCPClient1.IOHandler.WriteLn('GET / HTTP/1.1'#13#10);
              repeat
                   sLigne := IdTCPClient1.IOHandler.ReadLn;
                   Memo1.Lines.Add(sLigne);
              until sLigne = '';
         except
              on E : Exception do
              begin
                   MessageDlg(E.Message, mtError, [mbOK], 0);
              end;
         end;
    end;
    Il me donne le resultat suivant :
    HTTP/1.1 302 Found
    Location: http://www.google.fr/
    Cache-Control: private
    Set-Cookie: PREF=ID=65066b3f703fb3ad:TM=1160779425:LM=1160779425:S=BQFp8wOrDIo6it0F; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
    Content-Type: text/html
    Server: GWS/2.1
    Content-Length: 218
    Date: Fri, 13 Oct 2006 22:43:45 GMT
    Je souhaiterai récupérer le code source de la page ou du fichier, comment dois-je faire ?

    Merci d'avance,
    Mathieu

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 159
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Yop !
    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
    //The following function will extract the HTML from a WebBrowser, 
    //including the header block as well as the body of the HTML:
     
    function GetBrowserHtml(const webBrowser: TWebBrowser): String;
    var
      strStream: TStringStream;
      adapter: IStream;
      browserStream: IPersistStreamInit;
    begin
      strStream := TStringStream.Create('');
      try
        browserStream := webBrowser.Document as IPersistStreamInit;
        adapter := TStreamAdapter.Create(strStream,soReference);
        browserStream.Save(adapter,true);
        result := strStream.DataString;
      finally
      end;
      strStream.Free();
    end;
    Tout cela vient de là.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Bonjour,

    Merci pour ta réponse mais elle ne me convient pas ^^

    En effet, je cherche à récupérer des fichiers via le protocole HTTP et le TIdTCPClient afin de développer par la suite, un serveur proxy HTTP/HTTPS puis SOCKS et enfin FTP. C'est également pourquoi je ne veux pas utiliser TIdHTTP.

    Merci pour votre aide,
    Mathieu

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Selon moi, il faut effectuer une requête en GET ou POST pour obtenir en réponse la source de la page.
    J'ai trouvé ces liens à propos du protocol http :
    http://tools.ietf.org/html/rfc2965
    http://mathieu-lemoine.developpez.co...iels/web/http/

    Ton projet semble intéressant. Je travaille actuellement sur un programme similaire; Upload et download http (+ ssl) et accès aux bases de données via scripts PHP. Par contre, j'utilise ICS qui est open source contrairement à Indy.

    http://www.developpez.com/delphi/faq/?page=indy

  5. #5
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Bonsoir,

    Merci pour ce complément d'informations.
    Justement, j'étais un peu hésitant entre Indy ou ICS, je vais peut être me rediriger vers ICS.

    Merci,
    Mathieu

  6. #6
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Pour le moment, j'utilise principalement THttpCli pour tous mes projets Web. L'upload Http avec Delphi me permet de me passer du FTP. Les commandes disponibles dans le protocol Http couvrent la plupart de mes besoins avec seulement 3 unités (version d'ICS compatible avec Kylix), je l'utilise dynamiquement pour distribuer mes projets sans imposer aux développeurs son installation dans la palette. Ce composant est basé sur les sockets, cela me permet de repartir de zéro si nécessaire et réaliser des connections directes client/serveur. L'intégration du SSL est normalement déjà prévue, je travaille dessus actuellement. De plus, F.Piette est francophone et propose un support par news de qualité; C'est très appréciable.

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

Discussions similaires

  1. Récupérer fichier en https
    Par ArnaudDev dans le forum Applets
    Réponses: 2
    Dernier message: 04/06/2009, 14h39
  2. récupérer fichiers sur serveur HTTP
    Par aoshi85 dans le forum Web
    Réponses: 1
    Dernier message: 04/07/2008, 21h10
  3. [VB6]Upload Fichier HTTP
    Par aurel171 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/06/2006, 17h50
  4. lire un fichier http
    Par the_penguin dans le forum C++
    Réponses: 7
    Dernier message: 02/05/2006, 15h13
  5. récupérer fichier écrasé
    Par alainpeniche dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 10/10/2005, 10h46

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