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 :

Requette HTTP avec recuperation de la page ciblé


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 27
    Points
    27
    Par défaut Requette HTTP avec recuperation de la page ciblé
    Bonjour a tous.
    Je bute actuellement sur un probleme:
    Il est facile de passer des variables a un script php, puis de recuperer la page, en mettant dans l'URL de download ?mavariable=Moncontenue?

    Mais là, je dois completer un formulaire, et recupérer la page.
    En gros, je me log, et je telecharge la page.
    Pour ca, je connais la methode avec IdHTTP1.Post()
    En cherchant un peu, j'ai trouver que l'on pouvais telecharger la page en faisant comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Ts.Add('login='+login.text);
      Ts.Add('pass='+pass.text);
      IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
      //Envoie de la requete de download
      IdHTTP1.Post(url,Ts,TStream(fs)) ;
    (Ici, login et pass, sont des champs de textes a remplire)

    Cependant, quand j'execute mon code, je recois l'erreur suivant:
    Http/1.1 302 found
    J'ai essayer en enlevant le TStream(fs), comme pour envoyer un requete, sans rien recuperer (Comme dans l'exemple des tuto de devellopez), mais j'ai toujours la meme erreur.

    Merci beaucoup a ceux qui pourrons m'aider!

    Si cela peux vous donner quelques indications en plus, voici le code complet de mon programme:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
      StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        IdHTTP1: TIdHTTP;
        uniselector: TComboBox;
        login: TEdit;
        pass: TEdit;
        procedure uniselectorChange(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
      AdresseUnivers : string;
     
    implementation
     
    {$R *.dfm}
    //*************************************
    //Differentes Fonctions
    //*************************************
    procedure DownloadHTTP(const AUrl : string; out DestStream: TStream; const APort : integer = 80);
    var
    Port : integer;
    begin
      with TIdHTTP.Create(Application) do
      try
          Port := APort;
          try
            Get(AUrl,DestStream);
          except
            On e : Exception do
              MessageDlg(Format('Erreur : %s',[e.Message]), mtInformation, [mbOK], 0);
          end;
      finally
          Free;
      end;
    end;
    //********************************
    //Gestion de la Combobox
    //*******************************
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    uniselector.AddItem('31. Univers', TObject(1));
    uniselector.AddItem('2. Univers', TObject(2));
    end;
     
    procedure TForm1.uniselectorChange(Sender: TObject);
    begin
    showmessage(inttostr(uniselector.ItemIndex));
    if uniselector.ItemIndex = 0 then AdresseUnivers := 'ogame311.de';
    if uniselector.ItemIndex = 1 then AdresseUnivers := 'ogame290.de';
    end;
    //****************************
    //Login
    //****************************
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
     Fs : TFileStream;
     Ts : TStringList;
     url : string;
    begin
      Ts := TStringList.Create;
      Fs := TFileStream.Create('c:\test.txt',fmCreate);
      try
      url := 'http://'+AdresseUnivers+'/game/reg/login2.php';
     
      //Ajout des données login et pass
      Ts.Add('login='+login.text);
      Ts.Add('pass='+pass.text);
      IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
     
      //Envoie de la requete de download
      showmessage(url);
      IdHTTP1.Post(url,Ts,TStream(fs)) ;
      //DownloadHTTP('http://ogame311.de/game/reg/login2.php',TStream(fs));
     
     
      finally
        Fs.Free;
      end;
    end;
     
    end.
    PS: Inutile de regarder la fonction DownloadHTTP, elle n'est pas utilisé.
    PS2: Le bute du programme est de ce logger sur la page de www.ogame.fr et de pouvoir ensuite récuperer l'id de session.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Bon, j'ai trouver la cause de mon probleme, je la laisse ici, si un jour quelqun cherche a faire la meme chose que moi.
    Il faut rajouter une variable V=2 et tous marche

Discussions similaires

  1. Accès impossible aux pages https avec IE
    Par quadra38 dans le forum Windows 7
    Réponses: 2
    Dernier message: 14/12/2014, 18h45
  2. Redirection avec un message à la page cible
    Par Xeuch dans le forum Langage
    Réponses: 8
    Dernier message: 15/05/2013, 16h07
  3. affichage de page avec recuperation de variable
    Par zikman dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/04/2009, 20h29
  4. Executer script VBS avec requette http
    Par kevain_09 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/09/2006, 21h33
  5. [http] perte de requette http après redirection
    Par okoax dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 05/05/2006, 10h31

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