в итоге если так :
Код:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
doc:string;
ms:tmemorystream;
begin
doc:='http://'+ARequestInfo.Host+ARequestInfo.Document;
ms:=tmemorystream.Create;
myhttp.Get(doc,ms);
filter_doc(ms,'<a href','<!---<a href');
AResponseInfo.ContentStream:=TMemoryStream.Create;
AResponseInfo.ContentStream:=ms;
AResponseInfo.ContentType:=myhttp.Response.ContentType;
ms.Free;
end;
то весь контент странички где то теряется, а без промежуточной ms появляется ошибка о том, что не совместимы типы tmemory и tmemorystream.
если так
Цитата:
Код:
procedure Filter(MemoryStream: TMemoryStream;
const OldPattern, NewPattern: String);
var
s: String;
begin
s:=StringReplace(Copy(PChar(MemoryStream.Memory), 1, MemoryStream.Size),
OldPattern, NewPattern, [rfReplaceAll, rfIgnoreCase]);
MemoryStream.Size:=0;
MemoryStream.Write(s[1], Length(s));
end;
|
то прерывается с ошибкой
ContentLength := ContentStream.Size;
в IdCustomHTTPServer.pas и прокси в ступоре.