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が転送を終了したことをどのようにして知ることができますか?