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 :

IdHttp


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut IdHttp
    bonjours.

    je cherche a m'identifié sur une site afin d'affichez la page qui suit

    j'ai essayé avec le composant IdHttp.

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Ts : TStringList;
      Fs : TFileStream;
    begin
      Ts := TStringList.Create;
      Fs := TFileStream.Create('c:\test.txt',fmCreate);
     
     try
       If idhttp1.connected then
        begin
          Ts.Add('TxtUserName=****');
          Ts.Add('TxtPassword=***');
         Ts.Add('__VIEWSTATE='+LView);  // un autre input pour le site. Lview et une variable string.
          idhttp1.AllowCookies:=true;
          IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
          IdHTTP1.Post('http://212.100.209.7/security/Login.aspx?culture=ar', Ts, TStream(fs));
     
       end;
     
     finally
        Ts.free;
     end;
     
    end;
    mais le site affect la valeur de UserName et pas le password.
    ça fait déja une semaine que je cherche. J'ai rien comprie .

    HELPPPP PLEASE

  2. #2
    Membre averti
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut


    j'ai trouver la solution. merçi de m'avoir aider

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
    
      loginurl:='SiteA';
      Params := TStringList.Create;
      try
        cookies:=tstringlist.Create;
    
          html:=idhttp1.Get(loginurl);// Premier(s) cookie(s)
    
          count:=IdCookieManager1.CookieCollection.count;
          for i:=1 to count do
          begin
            cookies.Add(IdCookieManager1.CookieCollection.Items[i-1].CookieText);
            showmessage(IdCookieManager1.CookieCollection.Items[i-1].CookieText);
          end;
          html:=idhttp1.Get(loginUrl); // pour avoir VIEWSTATE
    
          poz:=pos('name="__VIEWSTATE" value="',html);
          delete(html,1,poz+25);
          viewstate:=copy(html,1,pos('"',html)-1);
          showmessage(IntToStr(poz));
          showmessage(viewstate);
          Params.Values['__VIEWSTATE'] := viewstate;
          Params.Values['TxtUsername'] := 'tarowras';
          Params.Values['TxtPassword'] := '12345';
          Params.Values['BtnLogin'] := 'Login';
    
          setCookies;
          IdHTTP1.HandleRedirects:=false;
          try
            HTML := IdHTTP1.Post(loginurl, Params);
    
          except on e: EIdHTTPProtocolException do
             begin
               if e.ReplyErrorCode<>302 then
                 raise e;
    
               count:=IdCookieManager1.CookieCollection.count;  // Pour le UserID et Password
               for i:=1 to count do
               begin
                 cookies.Add(IdCookieManager1.CookieCollection.Items[i-1].CookieText);
                 showmessage('Etape 2 : '+IdCookieManager1.CookieCollection.Items[i-1].CookieText);
               end;
    
               setcookies;
               html:=idhttp1.Get(IdHTTP1.Response.Location);// follow redirect
                memo1.Lines.add(IdHTTP1.Get('SiteB'));
             end;
          end;
      
          Params.Free;
    
    end;

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

Discussions similaires

  1. Erreur de socket avec le composant Indy idHTTP
    Par Etanne dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/10/2004, 11h27
  2. [Idhttp] Comment obtenir la vitesse instantanée ?
    Par SuprazZz dans le forum Web & réseau
    Réponses: 4
    Dernier message: 01/09/2004, 12h05
  3. [INDY] comment faire un 'POST' avec idHTTP??
    Par gamez dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/05/2004, 19h02
  4. Idhttp et vitesse de download ?
    Par slashi dans le forum Web & réseau
    Réponses: 4
    Dernier message: 23/11/2003, 20h48
  5. probleme avec composant indy IDhttp
    Par ulysse66x dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 09h35

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