![]() |
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:
Und Capton ändert sich, aber in einen leeren String. Wenn ich die Datei aber manuell per Browser downloade, dann ist da Inhalt drin...
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; Ideen? Wahrscheinlich hab ich da einfach was übersehen, aber anscheinend bin ich da zu blöd um alleine drauf zu kommen. Gruß |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Deine Fritz-Box wird wahrscheinlich einen Browser-Login haben, daran könnte es scheitern.
Versuch mal ![]() |
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). |
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.
|
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. |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Zitat:
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. |
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] |
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:
Gibt mir den Error:
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; "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:
dann liefert er mir den korrekten Inhalt.
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; Bin ich nun weiter, oder nicht? Und warum habe ich diesen Fehler? |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Funzt das?
Delphi-Quellcode:
Memo1.Text:=HTTP.Get('http://fritz.box/html/de/FRITZ!Box_Anrufliste.csv');
|
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...
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
Freut mich. Da hat die Vermutung gestimmt. :mrgreen:
http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv scheint ein Script zu sein, was http://fritz.box//html/de/FRITZ!Box_Anrufliste.csv aufruft. Das Script prüft wahrscheinlich irgendwas, was dein Browser kann und dein Programm halt nicht. Deswegen funzt das im Browser und bei dir nicht. Wenn du die Datei aber direkt anforderst, gibts ja nix, was blocken kann (ausser vlt. n http-Auth, was ja aber nicht der Fall ist). |
Re: IdHTTP.Get - und kein Inhalt geliefert.
achso... :wall: Gut, dass es Leute gibt, die denken und auch noch hilfsbereit sind. Danke nochmals, vielleicht kommt der Tag, dass ich auch mal helfen kann.
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
wenn da ein script wäre was durch den browser ausgeführt wird hätte man das im Quelltext stehen müssen (es hätte was zurück geliefert werden müssen). So glaube ich einfach das HandleRedirects nicht aktiviert war.
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
Eher nicht:
Zitat:
Gruß |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Ich habe mich wohl ein bisschen zu früh gefreut...
Mit der Lösung, die anscheinend funktionierte ist nur der Kopf der Datei richtig (kam jetzt beim Parsen raus) :wall: Also mit
Delphi-Quellcode:
bekommt man den Anfang der .csv, aber nicht die volle Liste...
Memo1.Text:=HTTP.Get('http://fritz.box/html/de/FRITZ!Box_Anrufliste.csv');
Google schlägt noch folgende Addressen vor: ![]() |
Re: IdHTTP.Get - und kein Inhalt geliefert.
hi,
versuche mal vorher das aufzurufen :wink:
Delphi-Quellcode:
HTTP.Get('http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&errorpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=foncalls&var:errorpagename=foncalls&var:menu=fon');
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
Uhm. Aktualisieren der Anrufliste davor... stand ja irgendwie auch dabei. Das klappt aber nicht. Immer noch 'Invalid argument to date encode' (da wird der CarryFlag "0" gesetzt). Ob das mit dem javascript zusammenhängt? Irgendwie muss der Browser für diese Konfigurationsseiten JS-Fähig sein, das ist die Indy-Komponente wohl nicht, oder?
Brtw, ACE-ppc ich habe Deinen Code ( ![]() P.S. Wireshark meint, dass ich für die .csv Liste unbedingt GET /cgi-bin/webcm?getpage=..%2Fhtml%2Fde%2FFRITZ%21Box_Anrufli ste.csv verwenden soll, was aber genau den selben Fehler verursacht. Hat der Code von ACE-ppc bei jemandem funktioniert? Zitat:
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
also bei mir klappt das absolut sauber ... ich habe mir eine kleine Komponente dafür geschrieben. Ich hänge sie die mal mit an ... dann kannst du selbst in den Quelltext schauen .. eine Beispiel Programm zur verwendung ist auch dabei. |
Re: IdHTTP.Get - und kein Inhalt geliefert.
War ja klar das da keine Rückmeldung mehr kommt. :(
Ein Einfaches Danke ist doch nicht zu viel verlangt, oder? |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Harte Worte - wohl zu oft die Erfahrung gemacht. Aber der Grund ist ein anderer: Ich würde ja was sagen, wenn ich es schon ausprobiert hätte (obwohl der Kernteil ist ja der, den ich schon ausprobierte). Ich hatte noch nicht die Zeit. Und JEDI und diese PNG Bib habe ich auch nicht, muss erst mal holen, deswegen keine Rückmeldung. Tut mir Leid, dass es so aussieht. Hab z. Z. ein bissl was mit dem Studium um die Ohren. Ah, und vll. versuche ich die Daten auch per Telnet zu holen. ich schreibe natürlich was, wenn ich den Fehler bei mir finde oder überhaupt weiterkomme. Aber da ich schon hier bin: Danke auf jeden Fall für das Beispiel und die Files!.
|
Re: IdHTTP.Get - und kein Inhalt geliefert.
hi,
sorry ... habe das halt schon öfters so erlebt. |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Hallo
Nach langem hin und her habe ich immer noch keine Lösung des Problems gefunden. Wollte nur vorbeischauen und mich nochmals bei allen bedanken für die Hilfe und bei Ace für die source (obwohl ich es doch nicht zum Laufen gebracht habe ich noob). Ich muss mich wohl intensiver damit beschäftigen. Sollte was dabei rauskommen, werde ich es natürlich hier posten. *bedank* Gruß |
Re: IdHTTP.Get - und kein Inhalt geliefert.
Ok, ok... bin ich nun weiter? ;)
Also: Zum auffrischen der Anrufliste braucht man etwas vorher aufzurufen. Vorschlag von google:
Delphi-Quellcode:
Wenn man das mit dem Browser aufruft landet man auf der index.html (Fritzbox meldet über telnet: SECURITY VIOLATION -> just jump to index.html), aber die Anrufliste wird aktualisiert. Coole Sache, mit IdHTTP läuft es nicht, obwohl HandleRedirects:= true; komisch ?
http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=foncalls
Vorschlag von Ace:
Delphi-Quellcode:
Liefert ja nix zurück oder? d.h ich bekomme "Invalid argument to date encode".
[url]http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&errorpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=foncalls&var:errorpagename=foncalls&var:menu=fon[/url]
Muss ich och was für die IdHTTP Komponente einstellen außer:
Delphi-Quellcode:
ich denke, das wäre es doch oder?
with HTTP do
begin HandleRedirects := true; Request.ContentLength := -1; Request.Accept := 'text/html, */*'; HTTPOptions := [hoForceEncodeParams]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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