Web Service logging

I’ve wrote a WS and it’s work fine, I’m trying to implement a basic logging feature of the exchanged data, but I don’t understand where I can “intercept” the exchanged data.

you can grab incoming and outgoing streams.
see server.OnReceiveStream/server.OnSendStream events.

I’ve only server.onreadfromstream and server.onwritetostream. server is a TROIndyHTTPServer.

when i try to read the stream i receive an error: “Stream write error”

I’ve put only this code in the event handler:

procedure TServerDataModule.ROMessageReadFromStream(aStream: TStream);
var aaStream : TStream;
begin
aaStream := TStream.Create;
aaStream.CopyFrom(aStream,aStream.Size);
end;

you can’t create TStream type because it contains abstract methods …


this code works:

procedure TServerForm.ROServerReadFromStream(aStream: TStream);
begin
  if aStream is TMemoryStream then TMemoryStream(aStream).SaveToFile('in.$$$');
end;

procedure TServerForm.ROServerWriteToStream(aStream: TStream);
begin
  if aStream is TMemoryStream then TMemoryStream(aStream).SaveToFile('out.$$$');
end;