AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TidHttp kein vollständiger GET & Fehler beim Login
Thema durchsuchen
Ansicht
Themen-Optionen

TidHttp kein vollständiger GET & Fehler beim Login

Ein Thema von 0NyX · begonnen am 9. Jul 2009 · letzter Beitrag vom 9. Jul 2009
Antwort Antwort
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#1

TidHttp kein vollständiger GET & Fehler beim Login

  Alt 9. Jul 2009, 14:09
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
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: TidHttp kein vollständiger GET & Fehler beim Login

  Alt 9. Jul 2009, 16:59
Zitat von 0NyX:
... mit der TidHttp Komponente auseinandersetzen, da der TWebBrowser sehr langsam ....
Just for Info:
TIdHttp kann kein Java-Script interpretieren.
Daher können Webseiten, die Java-Script zwingend benötigen nicht bedient werden.
Könnte mir vorstellen, dass Schüler.cc das Java-Script braucht.

Ach ja:
auch den Webbrowser kann man schneller ansteuern.
Jeder kopiert Sourcecode aus dem Internet und so bleiben auch unperformante und ungeschickte Konstruktionen erhalten.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#3

Re: TidHttp kein vollständiger GET & Fehler beim Login

  Alt 9. Jul 2009, 17:07
Danke für die Infos und die Antwort.

Nun ja, ich bin kein sehr erfahrener DELPHI Coder, eher eine Freizeitbeschäftigung Und bei meinem Programm, ist mein NetBook komplett ausgelastet wenn ich es darauf ausführe... Kann natürlich an gewissen konstrutionen liegen die ich da veranstaltet habe, wie z.b. das warten bis er fertig geladen hat u.ä.

Es wäre jedoch schade, wenn ich es nicht mit der TidHttp Komponente schaffen würde.
Mit BASH war es möglich die Seite aufzurufen und einzuloggen mit wget (hatte einen freund gefragt der in bash ab und an was macht), deswegen dachte ich mir das es mit idhttp auch möglich sein sollte...
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TidHttp kein vollständiger GET & Fehler beim Login

  Alt 9. Jul 2009, 18:18
Zitat von 0NyX:
Es wäre jedoch schade, wenn ich es nicht mit der TidHttp Komponente schaffen würde.
Mit BASH war es möglich die Seite aufzurufen und einzuloggen mit wget (hatte einen freund gefragt der in bash ab und an was macht), deswegen dachte ich mir das es mit idhttp auch möglich sein sollte...
Es hängt nur von der Website ab.
TIdHttp kann die HTTP-Methoden GET, POST, HEAD, kann Cookie erhalten/senden und Redirekts verfolgen.
Wenn es mit Wget funktioniert dann muss es auch mit TIdHttp gehen denn Wget interessiert sich nicht für Java-Script.

PS: aktiviere mal die Scrollbars in deinem TMemo, nur für den Fall, dass da noch mehr Zeilen/längere Zeilen sind.
Und ausserdem
Delphi-Quellcode:
procedure TForm1.IdCookieManager1NewCookie(ASender: TObject; ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin
  ACookie.Path := '/';
  VAccept := True; // <== Cookies annehmen
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TidHttp kein vollständiger GET & Fehler beim Login

  Alt 9. Jul 2009, 18:35
Leider hast du dir umsonst Mühe gemacht, denn im leider nicht angegebenen Crosspost ist das Problem bereits gelöst.
http://www.delphi-forum.de/viewtopic.php?p=570603
Zusammenfassung: Es lag an einem Nullzeichen, das in dem zurückgegebenen String nach dem oben angegebenen ersten Teil des Quelltextes stand und so vom Memo als Stringende interpretiert wurde.

@0NyX
Wenn du meinst in mehreren Foren fragen zu müssen, dann gib doch zumindest die Crossposts jeweils an. Denn dass das Problem erledigt war, hast du hier ja z.B. bereits 20 Minuten vor shmias Post im DF geschrieben, was hier aber niemand wissen konnte...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz