PDA

Ver la Versión Completa : Leer el formato del evento post de un navegador


sitrico
19-03-2004, 22:41:40
Estoy usando TIdHTTP.Post para simular el envío de los campos de un formulario a una pagina web (buscador.php) pero tengo problemas usando el código:


var
aStream: TMemoryStream;
Params: TStringStream;
begin
aStream := TMemoryStream.create;
Params := TStringStream.create('');
try
with IdHTTP1 do
begin
Params.WriteString('111111111');
try
Post('/php/buscador.php', Params, aStream);
except
on E: Exception do
showmessage('Error encountered during POST: ' + E.Message);
end;
end;
aStream.WriteBuffer(#0' ', 1);
aStream.Position := 0;
EmbeddedWB1.LoadFromStream(aStream);
except
end;
end;


El problema es especificamente:


Params.WriteString('111111111');


Porque no se la sintaxis del parametro que debo suministrar.

La Pregunta es saber si existe alguna manera de interceptar el evento que ocurre al hacer click en el boton de "Enviar" (en un TWebBrowser) para ver y analizar la sintaxis del mensaje enviado.

He intentado con el evento:


procedure TForm1.EmbeddedWB1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);

begin
Memo1.Lines.Add('-------------------------');
Memo1.Lines.Add('URL:'+String(URL));
Memo1.Lines.Add('Flags:'+String(Flags));
Memo1.Lines.Add('TargetFrameName:'+String(TargetFrameName));
Memo1.Lines.Add('PostData:'+String(PostData));
Memo1.Lines.Add('Headres:'+String(Headers));
end;


Nota EmbeddedWB1 es una clase mejorada (mucho) del TWebBroser

Pero la conversión de un tOleVariant en un String no produce muy buenos resultados.

Gracias de antemano.