Guten Tag Delphi-Praxis User,
ich möchte mich in nächster Zeit ein bisschen mehr mit der TidHttp Komponente auseinandersetzen, da der TWebBrowser sehr langsam und sehr resourcen lastig arbeitet.
Ich hatte mit mit Hilfe des TWebBrowser ein Programm geschrieben, welches mir Neue Nachrichten, Gästebuch Einträge und Einladungen bei Schüler.cc anzeigt und ausgibt.
Dieses kalppt auch soweit, doch nun möchte ich dieses via TidHttp lösen, in der Hoffnung das dieses schneller läuft und nicht so Resourcen lastig ist.
Nun komme ich aber schon nicht beim Login weiter.
Post Daten sollten soweit vollständig sein.
Jedoch wenn ich den Post ausführe kommt nur ein teil des quellcodes wieder:
Zitat:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<head>
<title>
Schueler.CC | Home</title>
<META http-equiv=Content-Type content="text/
html; charset=iso-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<META NAME="description" CONTENT="">
<META NAME="keywords" CONTENT="">
<META NAME="page-type" CONTENT="Homepage">
<META NAME="robots" CONTENT="index,follow">
mehr gibt der einfach nicht zurück. Das selbe kommt auch wenn man einfach nur ein GET ausführt. Leider habe ich keine Ahnung, wieso dieses so ist...
CookieManager habe ich eingefügt. Die idHttp Komponente habe ich wie folgt angepasst:
Delphi-Quellcode:
IdHTTP1.CookieManager := IdCookieManager1;
IdHTTP1.HandleRedirects := true;
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
Wenn ein neues Cookie gesetzt wird, wird folgendes gemacht (ist auch nen kleiner "log" bei):
Delphi-Quellcode:
procedure TForm1.IdCookieManager1NewCookie(ASender: TObject;
ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin
ACookie.Path := '/';
Memo1.Lines.Add('New Cookie:');
Memo1.Lines.Add(' Comment: '+ACookie.Comment);
Memo1.Lines.Add(' Version: '+ACookie.Version);
Memo1.Lines.Add(' CookieText: '+ACookie.CookieText);
Memo1.Lines.Add(' ServerCookie: '+ACookie.ServerCookie);
Memo1.Lines.Add(' ClientCookie: '+ACookie.ClientCookie);
Memo1.Lines.Add(' Domain: '+ACookie.Domain);
Memo1.Lines.Add(' Expires: '+ACookie.Expires);
Memo1.Lines.Add(' CookieName: '+ACookie.CookieName);
Memo1.Lines.Add(' Path: '+ACookie.Path);
Memo1.Lines.Add(' Value: '+ACookie.Value);
Memo1.Lines.Add(' DisplayName: '+ACookie.DisplayName);
Memo1.Lines.Add('');
end;
Die Procedure fürs Login sieht nun wie folgt aus:
Delphi-Quellcode:
procedure TForm1.BtLoginClick(Sender: TObject);
var
Params: TStringList;
begin
Params := TStringList.Create;
try
IdHTTP1.Get('http://www.schueler.cc/s,login,login.php');
Params.Add('email='+EdtMail.Text);
Params.Add('passwort='+EdtPw.Text);
Params.Add('button_login_login=Login');
Memo1.Lines.Add(IdHTTP1.Post('http://www.schueler.cc/s,login,login.php', Params));
finally
Params.Free;
end;
end;
Würde mich sehr über ein bisschen Hilfe freuen.
Vielen Dank im voraus!
Mit freundlichen Grüßen
0nYx