![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Puedes utilizar el componente "TIdHttp" de los "Indy". Es un cliente HTTP que te permitirá requerir un recurso (GET), enviar datos (POST), etc. No tiene nada que ver con el "TWebBrowser", es decir, en ningún momento precisarás mostrar el resultado de tus consultas. Cuando realizas una petición "GET" puedes obtener el resultado como un sencillo "Stream", no necesitas, por tanto, volcar dicho contenido (sea HTML o sea el que sea) en ningún sitio. Puedes, por tanto, "parsearlo", guardarlo, en fin, lo que necesites. "Parsers" de HTML hay varios... creo recordar. Será cuestión de que eches un vistazo por Torry's o alguna página similar. Creo que las "Jedi" incluyen algún "parser HTML", por si acaso instalaste estos componentes y no quieres ponerte a buscar ninguno aparte. No sé si lo que he dicho te sirve como aproximación... acaso algún compañero pueda añadir algo más. Tú ya sabes que puedes replicar lo que te sea menester que por aquí estamos. ![]() |
|
#2
|
||||
|
||||
|
Hola Al.
A la excelente explicación de dec, solamente hará falta añadir que regularmente los sitios manejan una "sesión", cuyo ID guardan en una galleta (cookie) y requieren de este para poder reconocer que usuario ha iniciado sesión y si esta no ha expirado. Esto también podes manejarlo con las Indy, que cuentan con la maquinaria necesaria para esta tarea: TidCookieManager, que luego asocias a la propiedad CookieManager del ya mencionado TidHTTP. Finalmente comentar que no hace falta que bajes la página de login cada vez que realices el paso 1/2 de tu explicación. Basta con que realices la llamada -normalmente un POST- que ejecutaría el navegador cuando un usuario humano haga clic en el botón "login", y estes atento a recibir y almacenar (puede ser en memoria) el cookie correspondiente a la sesión. Claro que esta es la generalidad de los casos, pero puede haber páginas que implementen en reconocimiento del usuario de alguna otra manera, para ellas habrá que hacer algo de análisis de comportamiento, pero siempre son cosas que pueden manejarse desde delphi. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 01-11-2006 a las 03:19:51. |
|
#3
|
||||
|
||||
|
Bueno, como alternativa a Indy podemos usar Wininet. Podemos hacer Get, podemos hacer Post y maneja las cookies perfectamente incluso las de sesión. No tengo nada en contra de las Indy, es solo por dar alternativas, además no se pueden usar en el Turbo
, aunque eso no es culpa suya.Bueno, un poco de código para animar la cosa:
Ahora que ya podemos hacer Get y Post solo nos falta analizar las paginas que obtenemos ¿voy por buen camino?EDITO: Modifico la función Post para incluir la cabecera Content-Type, que al parecer es necesaria, al menos para el siguiente ejemplo: Entrar al ClubDelphi, iniciar sesión y obtener la pagina principal de los foros:
Última edición por seoane fecha: 02-11-2006 a las 21:32:34. |
|
#4
|
||||
|
||||
|
¡Hola a todos!
Gracias Seoane, David y Antonio por la información que me proporcionan. Este viernes evaluaré sus sugerencias y haré las primeras pruebas. Los mantendré informados de mis avances para que el curso de esta solución (el hilo en sí) sea una experiencia de la que puedan aprender otros desarrolladores que se encuentren en la misma vicisitud. Un abrazo telarañudo. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#5
|
||||
|
||||
|
Hola,
Cita:
![]() |
|
#6
|
||||
|
||||
|
Hola,
Román, personalmente también pienso que utilizar las Indy puede ser más razonable, empero, estarás conmigo en que el código fuente es una maravilla, que acaso en ocasiones sea mejor (en varios aspectos y por diversos motivos) utilizar, directamente, el API WinInet. Yo desde luego me he permitido añadir el código entre el resto de Trucos, con el permiso de Seoane, pues que creo que puede ser un código fuente muy útil. Ahora, ¿que por eso digo que las Indy no debieran usarse? Nada de eso, de hecho ya he dicho que me parece más razonable usarlas, siempre que sea posible; pero también digo que no viene de más tener otras opciones, que ratón que conoce un agujero sólo pronto le caza el gato (o algo así). ![]() ¿Que no? ![]() |
|
#7
|
||||
|
||||
|
Hola,
Estoy de acuerdo contigo Román. Más ahora que sé que puede funcionar mejor incluso. Empero, lo dicho dicho, una cosa no quita la otra. En realidad creo que estamos de acuerdo todos, incluído el propio Domingo. ![]() |
|
#8
|
||||
|
||||
Vaya me levanto para cenar algo y como se animo la conversación. Vamos ir por partes como dijo Jack.Cita:
Cita:
Cita:
). Tendríamos que hacer pruebas, pero apuesto a que wininet podría obtener tiempos iguales o mejores que Indy.Y por ultimo algo mas subjetivo, me gusta mas el Wininet que le vamos a hacer. Pero si bien es verdad me he fijado que en este foro suele gustar mucho mas las Indy, así que supongo que serán mejores, pero yo todavía no he visto que ofrezca grandes ventajas, al menos en aplicaciones cliente, no así si queremos hacer, por ejemplo, un servidor. Pero eso ya es otra historia ... |
|
#9
|
||||
|
||||
|
Hola,
Las ventajas que ofrecen las Indy deben ser, sin duda, la orientación a objetos, esto es, que son un conjunto de componentes y clases que te permiten trabajar manipulando propiedades, invocando métodos, respondiendo a eventos, etc. Ahora bien, mirando el código que has presentado Seoane dan ganas en encapsularlo y presentarlo en una clase. En todo caso creo que puede resultar muy útil. ![]() |
|
#10
|
|||
|
|||
|
volviendo al tema
aqui pongo un ejemplo de como hacer un post usando las indy. creo que es mas sencillo que usando las wininet. el get seria parecido.
|
|
#11
|
|||
|
|||
|
Cita:
Y se formo la fiesta ![]() Exelente aporte para lo que no tienen instalado el componente indy sobre todo en lazarus |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Automatizacion de word (generar documentos) | alt126 | C++ Builder | 4 | 24-04-2007 05:19:27 |
| Automatizacion de word (insertar tablas) | alt126 | C++ Builder | 2 | 04-11-2005 11:44:29 |
| Consejo Automatizacion Excel Builder C++ | alt126 | C++ Builder | 0 | 14-04-2005 11:52:04 |
| HTTP Indy | bochi | Internet | 1 | 27-12-2003 02:57:34 |
| Http Server | ebeltete | Internet | 0 | 17-05-2003 03:57:39 |
|