AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Probleme mit Indy (IdHTTP)
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Indy (IdHTTP)

Ein Thema von endeffects · begonnen am 23. Jun 2005 · letzter Beitrag vom 24. Jun 2005
 
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Probleme mit Indy (IdHTTP)

  Alt 23. Jun 2005, 20:27
Hallo,

ich habe die Indy Komponenten in meinen Threads global deklariert und
rufe in der Exceute Methode eine Funktion auf die die Indys
initialisiert und nach dem Durchlauf wieder frei gibt.
Wärend die Methode Lunch() durchläuft werden verschiedene Get und Post Request
getätigt, leider kommt es hier immer wieder dazu das die Threads einfrieren
bzw eine lange Zeit überhaupt nichts machen.
Genau das kann ich mir allerdings nicht erklären, der Timeout für einen
Verbindungsaufbau liegt bei 10s und sollte der String aus den Methoden
Get() und Post() nicht die gesuchten Wörter enthalten müßte der nächste
Request aus der Methode Lunch() abgearbeitet werden.

Ich bin ein wenig ratlos, weiß vielleicht Jemand woran das liegt?

PS: SmartPos ist lediglich eine schnellere Variante der Pos() Methode


Delphi-Quellcode:
function TMyThreads.Lunch: Boolean;
...
begin
  Result:= False;
//init components
  IdHTTP:= TIdHTTP.Create(nil);
  IdCookieManager:= TIdCookieManager.Create(nil);
  PostDataStream := TStringStream.Create('');
  ParamData := TStringStream.Create('');
//settings
  IdHTTP.AllowCookies:= True;
  IdHTTP.CookieManager:= IdCookieManager;
  IdHTTP.HandleRedirects:= True;
  IdHTTP.Request.ContentType:= 'application/x-www-form-urlencoded';
  IdHTTP.Request.Connection:= 'Keep-Alive';
  IdHTTP.ConnectTimeout:= 10000;
  IdHTTP.Request.UserAgent:= '..';

  Source:= '';
  Source:= Get('...');
  if SmartPos('...', Source, False, 1, True) > 0 then
  begin
    Source:= '';
    Source:= Get('...');
    if SmartPos('...', Source, False, 1, True) > 0 then
    begin
      ...
    end;
  end;
  
  Source:= '';
  Source:= Get('...');
  if SmartPos('...', Source, False, 1, True) > 0 then
  begin
    Source:= '';
    Source:= Get('...');
    if SmartPos('...', Source, False, 1, True) > 0 then
    begin
      ...
    end;
  end;

  Source:= '';
  Source:= Get('...');
  if SmartPos('...', Source, False, 1, True) > 0 then
  begin
    Source:= '';
    Source:= Get('...');
    if SmartPos('...', Source, False, 1, True) > 0 then
    begin
      ...
    end;
  end;

 ...// usw


  FreeAndNil(ParamData);
  FreeAndNil(PostDataStream);
  FreeAndNil(IdCookieManager);
  FreeAndNil(IdHTTP);
  Result:= True;
end;

function TMyThreads.Get(Url: String): String;
begin
  try
    Result:= IdHTTP.Get(Url);
  except
    FStatus:= 'error';
    Synchronize(UpdateLVCaption);
    Result:= '';
  end;
end;

function TMyThreads.Post(Url, Params: String): String;
begin
  ParamData.WriteString(Params);
  try
    IdHTTP.Post(Url, ParamData, PostDataStream);
    Result:= PostDataStream.DataString;
  except
    FStatus:= 'error';
    Synchronize(UpdateLVCaption);
    Result:= '';
  end;
  ParamData.Size:= 0;
  PostDataStream.Size:= 0;
end;
  Mit Zitat antworten Zitat
 


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 02:31 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