Thema: Delphi indy http.Post problem

Einzelnen Beitrag anzeigen

Benutzerbild von easteregg
easteregg

Registriert seit: 26. Mär 2005
174 Beiträge
 
#1

indy http.Post problem

  Alt 21. Mai 2006, 00:01
heyho.

für meinen client (siehe projekt ->signatur) nutze ich die indykomponente idHtttp.Post
die funktioniert an sich auch gut und sendet die daten via post an meinen server.

nur nach einer gewissen zeit (so ca. 100-300 aufrufe) verweigert sie immer den dienst.



Delphi-Quellcode:
procedure tform1.senddata;
var
  data: TIdMultiPartFormDataStream;
  pass : MD5Digest;
  reply :string;
begin
 zeile[1] := daten[cbline1.itemindex];
 zeile[2] := daten[cbline2.itemindex];
 zeile[3] := daten[cbline3.itemindex];
 zeile[4] := daten[cbline4.itemindex];
 zeile[5] := daten[cbline5.itemindex];
     if edit_user.text = 'then
                              begin
                                  reply:='Keine Userdaten eingetragen';
                              end
     else
      begin
         IdHTTP1.Request.UserAgent:='siginfo client ' + version + '(user: ' + edit_user.text + ')';
         data := TIdMultiPartFormDataStream.Create;
         //passwort auslesen und in md5
         pass := md5.MD5String(edit_pass.text);
        try
         { POST daten erstellen }
         data.AddFormField('user', edit_user.text);
         data.AddFormField('pass', md5.MD5Print(pass));
         data.AddFormField('zeile1', zeile[1]);
         data.AddFormField('zeile2', zeile[2]);
         data.AddFormField('zeile3', zeile[3]);
         data.AddFormField('zeile4', zeile[4]);
         data.AddFormField('zeile5', zeile[5]);
         data.AddFormField('lastupdate', datetostr(date) +', '+ timetostr(gettime));
         data.AddFormField('version', version);
         data.Position:=0;
              try
                reply := IdHTTP1.Post(server, data);
              except
                reply := 'Server Timeout';

              end;
        finally
          data.free;
        end;
     end;
 Log.Lines.add (timetostr(gettime) + ': ' + reply);
 statusbar1.Panels[1].Text:=reply;
 statusbar1.Panels[0].Text:=timetostr(gettime);
end;
so sieht meine procedure zum daten senden erstmal aus.

wenn der server nicht erreichbar ist, schreibt er ja "server timeout" in den antwortstring rein.
aber trotz verbindung zum server (localhost zur zeit noch) bringt er mir immer "timeout".
erst wenn ich das programm neu starte, ist dieser fehler vorbei.

wie kann ich das beheben und vorallem - woran liegt das?
  Mit Zitat antworten Zitat