Autor Beitrag
Passi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Fr 31.12.04 14:23 
Hallo,

ich bin dabei ein Programm zu schreiben, das u.a. den Quelltext einer Seite auslesen muss. Ich habe das mit einem IdHTTP umgesetzt. Die URL die ich "ansurfe" ist immer die selbe am Anfang, also z.B. "http://www.delphi-forum.de/posting.php", es ändert sich nur je nach Eingabe in ein Edit-Feld das Ende der URL, also z.B. "www.delphi-forum.de/posting.php?mode=Edit-Feld-Eingabe". Der Quelltext wird daraufhin auch immer erfolgreich ausgelesen und ich kann damit arbeiten... Wenn ich dann allerdings eine neue Eingabe im Edit-Feld vornehme stürzt das Programm ab. (Manchmal auch erst bei einer dritten Eingabe). Und ja ich gebe auch immer einen Begriff ins Edit-Feld ein, wo die entsprechende URL eigentlich vorhanden sein sollte.
Der Compiler meldet folgendes:
Zitat:
Im Projekt1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00403FC6 in Modul 'Projekt1.exe'. Lesen von Adresse FFFFFFFF'. Prozess wurde angehalten. Mit einzelnen Anweisung oder Start fortsetzen.


Der verantwortliche Teil des Quelltextes:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
quelltext := form1.idhttp1.Get(url+edit1.text);
...
Quelltext durchsuchen/bearbeiten
...


Woran könnte das liegen, bzw. was kann ich verändern??

Gruß
Passi
deepgreen
Hält's aus hier
Beiträge: 12


D7
BeitragVerfasst: Fr 31.12.04 14:41 
Ich rate dir davon ab IdHTTP zu nutzen.
Verwende lieber die TWebBrowser Komponente, auch wenn dir der IE nicht passt, nimmt es einem viel Arbeit ab, vorallem in die Richtung Cookieverwaltung.
Da kannste dann auch simpel Anweisungen zurücksenden die davon abhängen das entsprechende Cookies gesetzt sind, glaube IdHTTP behandelt das nicht.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 01.01.05 14:06 
also ich würde dir nicht von der benutzung von Indy HTTP abraten, weil es meiner meinung nach eine der besten kompos ist die es dafür gibt.
also ich würde mir an deiner stelle mal die neuesten Indy kompos besorgen.
da kann es sein, dass du den string, den du an die URL hinten dranhängst nicht URL konform codiert ist ?
in einer GET anweisung darf nämlich z.b. kein leerzeichen vorkommen !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Passi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Sa 01.01.05 16:00 
ok, da ich auch lieber die IdHTTP Komponente beibehalten möchte, versuch ich mal eine neue Version der Indy Komponenten runterzuladen. Finde nur Version 9.0, ist das die Neuste???
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Sa 01.01.05 16:07 
ich glaube 9.1 ist das neueste, ausser indy 10 was aber nur mit .net funzt

schreib dir aber lieber eine funktion die den string in edit1 überpüft, trimmt und sonderzeichen in '%' + inttohex(ord(char)) umwandelt, und am besten noch eine exception routine (try...except) rein
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 02.01.05 11:48 
also in einen try except block gehört das auf alle fälle rein !
die neueste indy version ist glaube ich 9 und dann irgendwas mit 18 hinten ! in der version haben sie eineige böse bugs rausgeworfen.
und ann such mal im forum nach Suche in: Delphi-Forum, Delphi-Library HTTPENCODE diese funktion codiert dir den string aus deinem edit1 richtig !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Passi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: So 02.01.05 15:28 
Danke für die Antworten. Hab das jetzt mit einer try except Anweisung gelöst. Ich weiß zwar nicht wo genau jetzt das Problem lag, aber nun funktioniert das so, wie ich es mir vorgestellt habe. Naja Hauptsache es geht :D
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 02.01.05 18:45 
na dann passt das ja ! freut mich !

_________________
In the beginning was the word.
And the word was content-type: text/plain.