使用 indy TIdHTTPServer,即使在 OnCommandGet 上,也可以将带有数据的流传递给 AResponseInfo.ContentStream。这很好。我什么时候可以发布该流?假设服务器可以获得多个请求,并且任何请求都可以在给定时间处理,并且一个流可以完成另一个流。
在哪里可以释放流?
代码示例:
var
StreamsToFree : TList;
//assume StreamsToFree := TList.create; properly
procedure TObject.IdHttpServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
stream : TFileStream;
begin
stream := TFileSTream.create('file.name');
AResponseInfo.ContentStream := stream;
AResponseInfo.ResponseNo := 200;
StreamsToFree.Add(generateReceiptXML);
end;
什么时候可以释放流?在什么情况下,我们如何知道 IdHttpServer 完成了它的传输?