Bonjour,

Il s'agit de faire avec TIdHTTP une soumission de formulaire d'un site web. Bon, c'est une question courante sur ce forum
A l'aide de plug-in pour voir les requêtes HTTP dans une page web, il y a 2 redirections HTTP/1.x 302 Found avant d'arriver à la page finale
Dans mon code, j'obtiens l'erreur 404 Not found toujours à la 3ème requête qui n'est plus une redirection vue du plugin. Pourquoi
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
procedure TForm1.VoteButtonClick(Sender: TObject);
var
  Ts : TStringList;
  PageWeb : string;
begin
  Ts := TStringList.Create;
  try
      Ts.AddStrings(PostMemo.Lines);
      IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
      PageWeb := IdHTTP1.Post(URL_Edit.Text,Ts);
      Memo1.Lines.Add(PageWeb);
  except
    on e: EIdHTTPProtocolException do
    begin
      ShowMessage('Rija dit : ' + e.Message + ' ' + IntToStr(e.ReplyErrorCode));
    end;
  end;
end;
 
 
procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
  ShowMessage('Vote End - ' + TIdHTTP(Sender).ResponseText + ' ' + TIdHTTP(Sender).URL.Path);
 
  if AWorkMode = wmRead then
     CompleteStateLabel.Caption := 'Completed';
end;
 
procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
 if AWorkMode = wmRead then
 begin
 {Le composant nous renvoit ici quand il travaille}
   ProgressBar1.Position := AWorkCount ;
   CompleteStateLabel.Caption := IntToStr(AWorkCount) + 'Bytes de :' + inttostr(ProgressBar1.Max) ;
 end;
end;
Ici, le ShowMessage de l'évènement OnWorkEnd s'affiche alors 3 fois. Mais à quand est-il déclenché?
A cause du 404, il y a donc exception EIdHTTPProtocolException, je me demande alors si le formulaire est SOUMIS ou pas? Puisque c'est à la 1ère requête que les données ont été envoyées!
Memo1.Lines.Add(PageWeb); n'est plus pris en compte!!