Ver Mensaje Individual
  #1  
Antiguo 05-11-2007
xaguilars xaguilars is offline
Miembro
 
Registrado: jul 2007
Posts: 22
Reputación: 0
xaguilars Va por buen camino
Exclamation Gestionar una conexión de cliente con Indy10

Hola a todos, en clase estamos haciendo una práctica con Delphi 2006 en la que enviamos una petición HTTP a un servidor web por ejemplo con el comando GET. Toda la información de la petición está escrita en un TMemo (input) y la respuesta nos la tiene que escribir en otro TMemo (output).

Hemos usado el componente de Indy10 TIdTcpClient pero se nos cuelga la aplicación. Usamos el try {conectar y enviar peticion} finally {desconectar}
como se muestra aquí:

Código Delphi [-]
procedure TForm1.btGETClick(Sender: TObject);
var
  i:integer;
begin
  if edProtocol.Text='' then btInterprClick(Self); //separa las partes de la URL dada en un editbox, en editboxes
  Input1.Lines.Add('GET '+edPath.text+' HTTP/1.1'+EOL+'Host: '+edHost.Text+EOL); //EOL=#13#10
  //Conexión
  Output1.Lines.Clear;
  SckClient.Host:=edHost.Text;
  SckClient.Port:=Port;
  try 
    SckClient.Connect;
    If sckclient.Connected then showmessage ('Conectado!');
    for i := 0 to Input1.Lines.Count - 1 do
    begin
      SckCLient.IoHandler.Write(Input1.Lines[i]);
      Output1.Lines.Add(SckClient.IoHandler.Readln);
    end;
  finally
    SckClient.Disconnect;
  end;
end;

Parece que conectarse se conecta porque muestra el showmessage, también parece que envía la petición (Write) porque con F7 pasa a la línea siguiente... que es donde se cuelga (freeze) sin dar ningún error.

Alguien sabe como solucionarlo? Gracias

Última edición por xaguilars fecha: 05-11-2007 a las 14:36:55.
Responder Con Cita