Тема: idhttpserver
Показать сообщение отдельно
  #40  
Старый 06.09.2012, 16:04
pireved pireved вне форума
Прохожий
 
Регистрация: 20.08.2012
Сообщения: 15
Репутация: 10
По умолчанию

в итоге если так :

Код:
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 и прокси в ступоре.
Ответить с цитированием