AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idhttpserver mehere Anfragen gleichzeitig verarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

idhttpserver mehere Anfragen gleichzeitig verarbeiten

Ein Thema von Digielm · begonnen am 5. Aug 2008 · letzter Beitrag vom 5. Aug 2008
 
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

idhttpserver mehere Anfragen gleichzeitig verarbeiten

  Alt 5. Aug 2008, 08:44
Hallo Leute also ich habe da ein Problem

in der Function

procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);


verarbeite ich die Requestinfo und die response info. Probelm dabei ist wenn ich mit einem testtool 2 oder mehr gleichzeitige verbindungen an den HTTP Server schicke bekomme ich zu viele Parameter bzw. Parameter doppelt.

sieht wie folgt aus

Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  lGWDataService: IGWDataService;
  I : integer;
  sl : TStringlist;
  sl1 : TStringlist;
  sl2 : TStringlist;
  ergebnis : String;
  starttime : TTime;
  endtime : TTime;
begin
  AThread.Start;
  starttime := now;
  meparams.Lines := ARequestInfo.Params;
  meparams.Lines.add('');
  meparams.Lines.add(inttostr(AThread.ThreadID));
  sl := Tstringlist.create;
  sl1 := Tstringlist.create;
  sl2 := Tstringlist.create;
  application.ProcessMessages;
  for I := 0 to meparams.Lines.Count -1 do
  begin
    if pos('VO=',meparams.Lines.Strings[i]) > 0 then
       splitstring(meparams.lines.Strings[i],'=',sl);
    if pos('NA=',meparams.Lines.Strings[i]) > 0 then
       splitstring(meparams.lines.Strings[i],'=',sl1);
  end;
  application.ProcessMessages;
  AResponseInfo.ResponseNo := 0;
  AResponseInfo.ResponseText := '';

  application.ProcessMessages;

  // Abfrage in einer DB auf Vorname und nachname

  splitstring(ergebnis,'-',sl2);
  AResponseInfo.ResponseNo := strtoint(trim(sl2[0]));
  AResponseInfo.ResponseText := sl2[1];
  AResponseInfo.WriteHeader;
  AResponseInfo.WriteContent;
  endtime := now;
  melog.lines.Add('Aufruf des Service zu Verarbeitung : ' +Formatdatetime('ss.zzz',endtime - starttime)+' mit der Session ID = '+inttostr(AThread.ThreadID));
  application.ProcessMessages;
  melog.refresh;
  sl.free;
  sl1.free;
  sl2.free;
  AThread.Terminate;
end;

und so wie das jetzt aussieht bekomme ich in den Params teilweise zu viele Parameter und uin dem testtool gibts die Meldung das die Webseite nicht angezeogt werden kann.

Aufruf des Servers mit Parameter sieht so aus:

// http://localhost:3131/?VO=Vorname&NA=Nachname



Achja Turbo Delphi 2006 und Indy 9
  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 23:10 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