Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Me está trayendo de cabeza.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Me está trayendo de cabeza. Responder citando

Estoy intentando acceder al código fuente de una web desde mi programa. Utilizo un componente Indy de la siguiente forma:

Memo1->Text = IdHTTP1->Get("http://www.aquivaundominio.htm");

y me suelta el siguiente error: Project pruebe.exe raised exception class EIdConnClosedGracefully with message 'Connection Closed Gracefully'. Process stopped. Use Step or Run to continue.

Está claro que el componente Indy no me va a servir para leer esta web.

Sin embargo, desde el internet explorer la abre perfectamente. Se me ocurre que podría dejar la web abierta en el internet explorer y tratar de leer el código fuente desde ese internet explorer abierto. ¿Se puede hacer?, es decir, ¿se puede acceder al código fuente de un internet explorer abierto previamente?.

Para más datos, la web se actualiza cada x tiempo y lo que trato de hacer es un sistema de alertas que me avise en un determinado momento si uno de los datos que se presentan en ella, toma un determinado valor.

Nota.- Tiene gracia el error. Encima se mofa. Dice que se cierra la conexión por la gracia de alguien. Jajajaja.
Volver arriba
Mensaje    Asunto: Responder citando

Si lo que necesitas es cargar el IExplorer y leer el código pueden servirte estos mensajes anteriores:
    https://cppbuilder.es/viewtopic.php?t=4435
    https://cppbuilder.es/viewtopic.php?t=4511
    https://cppbuilder.es/viewtopic.php?t=4731
    https://cppbuilder.es/viewtopic.php?t=5449

Si lo que quieres es leer directamente el código de la página, se podría hacer de varias maneras, aquí va una usando TClientSocket:
Código:
#include <memory>
#include <ScktComp.hpp>
String DescargarHtml(const String& servidor, const String& archivo)
{
    std::auto_ptr<TStringStream> stream(new TStringStream(""));
    std::auto_ptr<TClientSocket> socket(new TClientSocket(0));

    socket->Host = servidor;
    socket->ClientType = ctBlocking;
    socket->Port = 80;
    socket->Open();
    if (socket->Active)
    {
        int ret = socket->Socket->SendText("GET " + archivo
                + "  HTTP/1.1\r\nHost: " + servidor + "\r\n\r\n");
        while (socket->Active && ret > 0)
        {
            Application->ProcessMessages();
            char szBuffer[1024];
            ret = socket->Socket->ReceiveBuf(szBuffer, sizeof(szBuffer));
            stream->Write(szBuffer, ret);
        }
    }
    return stream->DataString;
}

Esto te da el contenido de la página con la cabecera que devuelve el servidor incluida que te sirve para comprobar si hay errores etc...
Un ejemplo de como usarla:
    Memo1->Lines->Text = DescargarHtml("www.borland.com", "/cbuilder/index.html");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo, Veo que eres un monstruo en esto del builder.

Creo que ya tengo datos para pelearme un buen rato con el compilador. Si me surge algo ya te comentaré.

Gracias otra vez.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.