Einzelnen Beitrag anzeigen

charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Eine textdatei zum Browser zurück geben

  Alt 18. Aug 2022, 08:52
Es klemmt immer noch!

Hier mal mein Stück Code. Es ist von einem Vortrag von
Danny Wind vom SummerCamp2021 abgeleitet.
Das Ganze ist eine WebServerApplication (stand-alone webserver)
Ich habe ein WebModule mit diversen WebModule.Actions und u.a.
folgendem Code


Delphi-Quellcode:
procedure TWebModule1.WebModule1waiGET_ReportsAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Do_GET_ReportsAction(Sender,Request, Response, Handled);
end;

procedure TWebModule1.Do_GET_ReportsAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  lRKey : string;
  fs : TFileStream;
  i : Integer;
  s : String;

begin
  lRKey:= Get_Param(Sender, Request);
  if (lRKey.IsEmpty) then //No Report-no param. as URL Params nor URL Segment for GET request
  begin
    Handled:= False; //do default handler
  end
  else
  begin //param gefunden
        //https://wiki.selfhtml.org/wiki/MIME-Type
    Response.ContentType := 'text/plain; charset=' + TEncoding.UTF8.MIMEName;
    if TMonitor.Enter(gLock, 500) then {al short lock was possible}
    begin
      try //try to return the selected Report
        s:= 'meinetextdatei';
        fs:= TFileStream.Create(s, fmOpenRead);
        i:= fs.Size;
        Response.ContentLength := fs.Size;
        Response.SendStream(fs);
        Response.SendResponse;
      finally
        TMonitor.Exit(gLock);
      end;
    end;

// if (lValue.IsEmpty) then {no Data found}
// begin
// //{"error":"Item not found"}
// Response.Content := '{"error":"Item not found"}';
// end
// else
// begin
// Response.Content := lValue;
// end;
    Handled := True;
  end;
end; //of Do_GET_ReportsAction()
mit dem code von Delphi.Narium bekomme ich jetzt im Debugger die Fehlermeldung
Zitat:
Project xyzAlone.exe raised exception class EIdSocketError with message
"Socket-Fehler # 10054 Die Verbindung wurde von Peer zurückgesetzt"
und ohne Debugger gibt es nur nen Alarmton und (no response).
Jeweils aufgerufen mit dem Rest Debugger mit folgender URL http://localhost:8080/Reports/51

Ich hoffe jetzt auf ne richtig gute Idee! Danke

Charly

Geändert von charly52 (18. Aug 2022 um 09:07 Uhr)
  Mit Zitat antworten Zitat