AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy tidhttp

Ein Thema von frankbellartz17 · begonnen am 3. Mär 2013 · letzter Beitrag vom 3. Mär 2013
Antwort Antwort
frankbellartz17

Registriert seit: 2. Mär 2013
1 Beiträge
 
#1

Indy tidhttp

  Alt 3. Mär 2013, 00:26
Ich arbeite an einem Programm, das Webseiten aus einer Kundendatenbank abruft, nach bestimmten Kriteren durchsucht und die Ergebnisse aktuell im Intranet des Unternehmens zur Verfügung stellt. In diesem Projekt verwende ich die indy Komponente tidhttp in einer Multithread-Umgebung. In der Regel werden ca. 40.000Websites mit jeweils max. 60 Unterseiten abgerufen. Das ganze funktioniert auch ganz gut. Leider ist mir aufgefallen, das während des Abrufs threads nach und nach ausfallen. Dies passiert immer bei den gleichen websites. (www.original-klopfer.de, www.kwo.de,..). Im Internetexplorer lassen sich die Sites einwandfrei laden. In einem einfachen Programm mit auf die Form gezogene tidhttp-Komponente tritt der gleiche Effekt auf. Das Programm hängt sich auf.
Vielleicht kennt jemand von euch den Grund.

procedure TForm2.Button1Click(Sender: TObject);
var SS : TStringStream ;
begin
SS := TStringStream.Create ;
try
HTTP.get('http://www.kwo.de',ss) ;
showmessage (ss.DataString) ;
finally
SS.Free ;
end;

end;
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Indy tidhttp

  Alt 3. Mär 2013, 20:16
Hey,
bei mit D2k10 funktioniert es. Habe aber auch die neuste Indy Version. Willkommen in der DP

Das Problem liegt aber an den http-equiv der beiden Webseiten. Siehe Screenshot im Anhang. Der FireFox zeigt das wunderbar an.

Bei original-klopfer.de bekomme ich dann auch noch eine Exception, die meine Vermutung bestätigt:
Zitat:
Erste Gelegenheit für Exception bei $7603C41F. Exception-Klasse EConvertError mit Meldung ''''' is not a valid integer value'. Prozess Project1.exe (5332)
Also am besten du meldest dies den Webseitenbetreibern

Das Parsen der http-equiv durch die Indy Komponente ist sehr suboptimal umgesetzt, so kann es bei Fehlern durch die Webseite zu einer Endlosschleife (innerhalb der Indy Komponente) kommen. Die neuen Versionen sind etwas robuster, aber auch diese können in Endlosschleifen geraten!
Da bleibt die dann nur das Parsen des http-equiv zu deaktivieren:
Delphi-Quellcode:
  with <TIdHTTP-Instance> do
    HTTPOptions := HTTPOptions + [hoNoParseMetaHTTPEquiv];
Grüße
Miniaturansicht angehängter Grafiken
httpmetaerror.png  
Sebastian
  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 12:12 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