Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi http.Post Felder werden nicht ausgefüllt! (https://www.delphipraxis.net/127998-http-post-felder-werden-nicht-ausgefuellt.html)

vit4l 22. Jan 2009 14:11


http.Post Felder werden nicht ausgefüllt!
 
Ich versuche mit IdHTTP mittels Post einen Formular zu versenden. Dafür erstelle ich eine TIdMultiPartFormDataStream, füge die benötigten Felder hinzu und poste es an den Server. Im Normalfall sollte es dann zu der nächsten Seite weitergeleitet werden, passiert aber nicht. Zum Testen habe ich den zurückgegebenen HTML-Code als html-Datei gespeichert und im Browser geöffnet. Und da wird deutlich, dass keines der Felder mit den geposteten Daten ausgefüllt wird. Es passiert einfach nichts! Aber auch keine Fehlermeldung, wenn irgenwelches Pflichtfeld nicht ausgefüllt wurde. Wenn ich aus den Parametern selber ein Link zusammensetze und dann im Browser eingebe, passiert dasselbe. Es funktioniert also nur, wenn man das Formular im Browser ausfüllt und abschickt.

Kann das sein, dass nicht alle Formulare mittels Post und IdHTTP ausgefüllt werden können? Was sollte ich immer beachten, wenn ich die Formulardaten auf diesem Weg übertrage?

romber 22. Jan 2009 16:29

Re: http.Post Felder werden nicht ausgefüllt!
 
Poste mal deine Prozedur, mit der du die Formulardaten abschickst.

vit4l 22. Jan 2009 16:35

Re: http.Post Felder werden nicht ausgefüllt!
 
Delphi-Quellcode:
procedure PostData;
var
  http : TIdHTTP;
  Source: string;
  CookieMgr: TIdCookieManager;
  PostParams: TIdMultiPartFormDataStream;
const
  AddPageURL = 'http://www2.motoscout24.de/ger/private/privateeditmoto.asp';
begin
  CookieMgr := TIdCookieManager.Create(nil);
  http := TIdHTTP.Create(nil);
  http.CookieManager := CookieMgr;
  http.Request.ContentType := 'text/html';
  http.Request.AcceptCharSet := 'ISO-8859-1';
  http.Request.AcceptLanguage := 'DE';
  http.HandleRedirects := true;
   
  PostParams := TIdMultiPartFormDataStream.Create;
  PostParams.AddFormField('ctst', 'yes');
  PostParams.AddFormField('make', '13');
  PostParams.AddFormField('model', '148');
  PostParams.AddFormField('category', '16');
  PostParams.AddFormField('price', '500');
  PostParams.AddFormField('send', 'Jetzt kostenlos inserieren');
  PostParams.AddFormField('pubstart', '');
  PostParams.AddFormField('pubend', '');
  PostParams.AddFormField('id', '0');
  PostParams.AddFormField('language', 'ger');
  PostParams.AddFormField('action', 'save');

  Source := http.Post(AddPageURL, PostParams);
  with TStringList.Create do
  try
    Text := Source;
    SaveToFile('C:\test.html');
  finally
    Free;
  end;  
  PostParams.Free;
  CookieMgr.Free;
  http.Free;
end;

vit4l 23. Jan 2009 08:36

Re: http.Post Felder werden nicht ausgefüllt!
 
Weiss keiner eine Lösung...????????
Schade :(

vit4l 26. Jan 2009 10:34

Re: http.Post Felder werden nicht ausgefüllt!
 
Mein Problem hat sich erledigt, wenn jemand auch mit so einem Problem zu kämpfen hat, sollte einfach für die values die normale TStringList benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz