Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2007
xaguilars xaguilars is offline
Miembro
 
Registrado: jul 2007
Posts: 22
Poder: 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
  #2  
Antiguo 05-11-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
si son peticiones a un webserver, yo les aconsejaría utilizar un cliente http (Yo me inclino por el componente WebBrouser), eso les va a ahorrar muchisimo trabajo.

El componente Webbrowser y el Indyhttp tienen implementados los métodos Get y post. Suerte
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 05-11-2007
xaguilars xaguilars is offline
Miembro
 
Registrado: jul 2007
Posts: 22
Poder: 0
xaguilars Va por buen camino
Hola muchas gracias. Lo he probado pero no encuentro la manera de conectar con el servidor. Cuando hago Idhttp1.Connect, me sale una excepción: EIDHostRequired. He probado poniendo el host y el port en Idhttp1.iohandler.host y en Idhttp1.iohandler.port pero no me deja asignarles nada.
Lo que básicamente queremos es sacar por un tmemo la respuesta del servidor en texto plano, la cabecera html y todo el body que venga después.

Muxas gracias
Responder Con Cita
  #4  
Antiguo 05-11-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
más bien es

IdHttp1.Host = 'www.clubdelphi.com';
IdHttp1.Port = 80
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
conexión a bde sin cliente oracle Johnny Q Conexión con bases de datos 4 02-10-2007 23:38:55
Aplicacion Cliente/Servidor INDY10 m@kio Internet 1 15-07-2005 17:19:47
Re-conexion automatica de un cliente Vultur C++ Builder 0 11-02-2005 04:22:24
Conexión Cliente-Cliente Clantt Providers 1 28-09-2004 17:46:34
Conexión de Cliente a BD AGAG4 Conexión con bases de datos 8 18-08-2004 00:21:57


La franja horaria es GMT +2. Ahora son las 07:30:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi