Получение HTML из потока ответов с помощью Indy IDTCPClient [закрыто]

У меня есть компонент, созданный предыдущим сотрудником. Он использует Indy (IDTCPClient) и следующий метод для выполнения запросов (где "aReadHeader» предопределенный Uri, созданный перед передачей).

function TMyConnector.GET(aRawHeader: String): String;
begin
if Not Connected then Connected := True;
if Connected then
  begin
  FRawRequest :=  'GET /'+ aRawHeader + ' HTTP/'+HTTPVerText+#13#10+
                  'Host: '+FHost+#13#10+

                  'Cookie: UserHPos=IOGLO00003000090000C000BS; '+
                  'LOSID=qsBiy/wEDCq6tOXFzGbOlTD1lmo5AXdFnCkbzzPn6+qCeheYVyTcumRrjsqh+Hds4Fr2gZDazfDzGN1RA+nnHuQQeBy78ZUgctrZyyy9MnGl2qI/ulkV6EPxAfmmLg/lopRq99f5gAcG/dgtytAJjS+aD5DqtHGrAqjiqgtkwuA=; '+
                  'LoginHPos=IOGLO00003000090000C000BS; '+
                  'UIHPos=IOGLO00003000020000500003; '+
                  'LOSG=61939308-7C83-47ED-B909-2D2D10AD7026; '+
                  'fControllingBusiness=IOGLO000030000900001000050000200001'+#13#10+

                  'Connection: Close'+#13#10+
                  #13#10;

  FSock.Socket.Write(FRawRequest);
  FRawResponse := FSock.Socket.ReadLn(#13#10#13#10,nil);
  Result := FRawResponse;
  if ResponseStream = nil then ResponseStream := TMemoryStream.Create
    else ResponseStream.SetSize(0);
  FSock.Socket.ReadStream(ResponseStream,-1,True);
  if Connected and (Not KeepAlive) then Connected := False;
  end;
end;

Вопрос: Возвращает FRawResponse?

HTTP / 1.0 200 OK Длина контента: 5560 Дата: понедельник, 18 ноября 2013 15:05:07 GMT Тип контента: text / html; charset = UTF-8 ..., общедоступный

Как я могу получить этот HTML-контент из ResponseStream в HTML

Один из методов, который в настоящее время существует, "GenerateJSON» (см. код ниже). Я хотел бы создать один называетсяGenerateHTML»

Function StreamToArray(Strm:TStream):TArray;
Begin
 Strm.Position := 0;
 SetLength(Result,Strm.Size);
 Strm.Read(Result[0],Strm.Size);
End;


Procedure TMyConnector.GenerateJSON;
begin
 if ResponseStream  nil then
  Begin
   ResponseJSON_V := TJSONObject.ParseJSONValue(StreamToArray(ResponseStream),0) as TJSONValue; // Note ResponseJSON_V is declared as TJSONValue in TMyConnector);
  End;
end;

так что мне нужно

Procedure TMyConnector.GenerateHTML;
begin
 if ResponseStream  nil then
  Begin
   // result:= html from stream here
  End;
end;

РЕДАКТИРОВАТЬ:

Procedure TMyConnector.GenerateXML;
var
 S: String;
begin
if ResponseStream  nil then
  Begin
   try
    while FSock.IOHandler.CheckForDataOnSource(30) do
    begin
       S := FSock.IOHandler.InputBufferAsString;
    end;
  finally
    ResponseStr_v:= S;
  end;
  End;
end;

Ответы на вопрос(1)

Ваш ответ на вопрос