Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdHTTP.Get - und kein Inhalt geliefert. (https://www.delphipraxis.net/106564-idhttp-get-und-kein-inhalt-geliefert.html)

wro 12. Jan 2008 20:23


IdHTTP.Get - und kein Inhalt geliefert.
 
Also ich kann nicht mehr. Sorry, dass ich meine Noob Frage doch posten muss, aber ich finde echt nicht die Quelle des Problems.

Ich versuche eine .csv Datei ineinen String einzulesen mit IdHTTP.Get, bekomme aber keine Daten. Die Indy version war vorhin 9, ich habe nun auf 10.1.5 aktualisiert - aber nicht geholfen.

Die URL ist korrekt - über einen Browser bekomme ich die Datei. Wenn ich das Ganze als eine Datei auf der Festplatte abzulegen versuche, bekomme ich auch keinen Inhalt (leere Datei). Mein Quellcode wäre:

Delphi-Quellcode:
try
    Label1.Caption:= IdHTTP1.Get('http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv');
     
    except
      on E: Exception do AError := E.Message;
Und Capton ändert sich, aber in einen leeren String. Wenn ich die Datei aber manuell per Browser downloade, dann ist da Inhalt drin...

Ideen? Wahrscheinlich hab ich da einfach was übersehen, aber anscheinend bin ich da zu blöd um alleine drauf zu kommen.

Gruß

Nuclear-Ping 12. Jan 2008 20:25

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Deine Fritz-Box wird wahrscheinlich einen Browser-Login haben, daran könnte es scheitern.

Versuch mal http://user:pw@fritz.box/...

wro 12. Jan 2008 20:35

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Also das mit dem login das klappt nicht. Und ich habe die Login-PW Sache extra ausgeschaltet zum testen...

WordWrap ist aktiv, ausserdem habe ich es auch schon mit einer Memo probiert. Er liefert irgendwie einen leeren String. Den Wert habe ich mir nicht angeschaut, weil ich icht weiß, wie (peinlich, peinlich).

SirThornberry 12. Jan 2008 20:36

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
ich hatte nicht bis zu ende gelesen. Wenn selbst in einer Datei dann nichts steht wird wohl wirklich nichts zurückgeliefert oder geht mittendrin irgendwo verloren.

wro 12. Jan 2008 20:42

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
mittendrin ist gut - wo denn, wenn ichs direkt nach dem Auslesen zuweise?
eher schon, dass nichts zurückgeliefert wird... nur was können die Ursachen sein? Der Link ist ja ok, ausserdem habe ich das auch mit einer test.txt -Datei auf dem Server versucht. Das ging auch nicht, also auch ein leerer String(?)

Und ganz am Rande: recht vielen Dank für die superschnellen Antworten.

Nuclear-Ping 13. Jan 2008 00:31

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Zitat:

Zitat von wro
Der Link ist ja ok, ausserdem habe ich das auch mit einer test.txt -Datei auf dem Server versucht. Das ging auch nicht, also auch ein leerer String(?)

Wie mit einer "test.txt auf dem Server ..."? Du hast auf die FritzBox 'ne Test.txt geladen oder auf einen X-beliebigen Server?

Wenn du letzteres gemacht hast und das schon nicht geht, hast du irgendwo anders ein Problem.

Falls das geht, wird das bei deiner FritzBox entweder an irgendwelchen Cookies scheitern oder an irgend'ner Authentifizierung.

DeddyH 13. Jan 2008 00:43

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Übrigens ist das ein Frameset. Wenn man sich den betreffenden Frame mal ansieht, bemerkt man, das es sich um ein "POST"-Formular handelt.

[edit] Wozu eigentlich die Anrufliste per Programm speichern? Bei mir sind das 2 Mausklicks :| [/edit]

wro 13. Jan 2008 01:02

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Ok, ich bin da irgendwie weitergekommen... also ich weiß immer noch nicht, was der Fehler war, aber ich hab mich entschieden, das Ganze dynamisch auf der Form zu platzieren und dann ging es...
aber nur halb, weil:

Delphi-Quellcode:
begin
     HTTP := TIdHttp.Create(nil);

  try
    with HTTP do
    begin
      HandleRedirects := true;
      Request.ContentLength := -1;
      Request.Accept := 'text/html, */*';
      HTTPOptions := [hoForceEncodeParams];
    end;
    Memo1.Text:=HTTP.Get('http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv');
    except E: Exception do AError := E.Message;
    end;
end;
Gibt mir den Error:
"Invalid argument to date encode"

Wenn ich den Link jedoch manuell in den Browser eingebe, die Datei herunterlade, sie auf einen Webserver platziere und dann abrufe:

Delphi-Quellcode:
begin
     HTTP := TIdHttp.Create(nil);

  try
    with HTTP do
    begin
      HandleRedirects := true;
      Request.ContentLength := -1;
      Request.Accept := 'text/html, */*';
      HTTPOptions := [hoForceEncodeParams];
    end;
    Memo1.Text:=HTTP.Get('http://www.drobiarnia.com/a.csv');
    except E: Exception do AError := E.Message;
    end;
end;
dann liefert er mir den korrekten Inhalt.

Bin ich nun weiter, oder nicht? Und warum habe ich diesen Fehler?

Nuclear-Ping 13. Jan 2008 01:11

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Funzt das?
Delphi-Quellcode:
Memo1.Text:=HTTP.Get('http://fritz.box/html/de/FRITZ!Box_Anrufliste.csv');

wro 13. Jan 2008 01:12

Re: IdHTTP.Get - und kein Inhalt geliefert.
 
Ja. Bin überglücklich, danke schön. Kurze Erklärung, warum das funktioniert? Aber auch so vielen, vielen Dank...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr.
Seite 1 von 3  1 23      

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