Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cita:
Empezado por seoane
Muy cierto Crandel, es mejor poner la propiedad size a cero. Por cierto, no comentas que te parece el resto del código.
Por un lado te comento que tu función SendRequest funciona de maravillas, yo estaba implementando mi programa con TidHttp y tenia problemas que no me guardaba la sesión de conexión, entonces cuando una vez me autentificaba y luego pedia otra página que necesitara parametros (signo ? despues de la dirección de la página) ya me pedia que me registre de nuevo.

Ahora lo implemente con SendRequest y no tengo ese problema, en realidad se adapta mejor a mi problema porque realmente simula que es el IE y no un programa de automatización

Por otro lado estoy usando una clase llamada THTMLParser para analizar el texto de las paginas web con buenos resultados, ya me pondre mas a delante a estudiar "Expresiones regulares" que parece ser una mejor herramienta.
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 16-12-2006
Avatar de Roger007
Roger007 Roger007 is offline
Registrado
 
Registrado: oct 2006
Posts: 9
Poder: 0
Roger007 Va por buen camino
Viendo todo esto: ¿Se podria ejecutar un navegar pasandole los parametros necesarios para el login?

Ejemplo:

Código Delphi [-]
WinExec('C:\Archivos de programa\Internet Explorer\iexplore.exe http://clubdelphi/foros/login.phpvb_login_username=usuariovb_login_password=password s= do=login',1);

O algo asi, para que habra el navegador con la web del foro y ya logeado con mi usuario y password.

Un saludo, Roger.
Responder Con Cita
  #3  
Antiguo 16-12-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Lo que puedes hacer, es usar la función SendRequest de seoane con la que te logueas, y luego envias la orden que se habra la pagina que quieras con el IE sin necesidad de mandar parámetros.

No lo he probado pero deberia funcionar.
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 16-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por Roger007
Viendo todo esto: ¿Se podria ejecutar un navegar pasandole los parametros necesarios para el login?
Pues no lo he probado, pero pasarle los parámetros por Get no es lo mismo que pasarle los parámetros por Post. Si el diseñador de la pagina ha tenido en cuenta la posibilidad de pasar lo parámetros por Get, puede que funcione, aunque lo mas seguro es que no.

Cita:
Empezado por Crandel
Lo que puedes hacer, es usar la función SendRequest de seoane con la que te logueas, y luego envias la orden que se habra la pagina que quieras con el IE sin necesidad de mandar parámetros.
No creo que eso funcione, cuando nos logueamos con mi función recibimos un identificador de sesión, un identificador que solo es valido dentro de nuestra aplicación. Así que si abrimos el explorador, este estará dentro de una sesión nueva, a menos que seamos capaces de enviarle de alguna manera el valor de la cookie de sesión, aunque lo veo difícil.

Lo que si podríamos hacer en el caso del ClubDelphi, es loguearnos usando la función SendRequest, pero marcando la opción "Recuerdame", de esta forma la información de login se guardara en una cookie persistente que la nueva ventana del explorer si podrá utilizar.
Responder Con Cita
  #5  
Antiguo 27-12-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Tenemos dos problemas Houston

¡Hola a todos!

Los saludo con muchísimo gusto esperando que hayan tenido una muy feliz Navidad y deseándoles lo mejor para el año que está por comenzar.

Les actualizo mi caso, ahora si estoy en algunos aprietos técnicos.

Son dos problemas en sí:

1. En una de las páginas que estoy automatizando veo que los parámetro enviados mediante el método Post son:

Cita:
Empezado por OnBeforeNavigate2 con el truco de Seoane para sacar los parámetros enviados por el navegador al servidor Web
----------------------------7d6242382036e
Content-Disposition:
form-data;
name="equipmentData"
-1
-----------------------------7d6242382036e
Content-Disposition:
form-data;
name="serialNumber"
-----------------------------7d6242382036e
Content-Disposition:
form-data;
name="consumptionCountryAnswer"
Y
-----------------------------7d6242382036e
Content-Disposition:
form-data;
name="filetogo1";
filename=""
Content-Type:
application/octet-stream
Observen que el signo de igual separa el nombre de los parámetros de sus valores. ¿Cómo es posible que uno de los parámetros se llame "----------------------------7d6242382036e
Content-Disposition:
form-data;
name"?

Al parecer están codificados (encriptados). Como pista, se supone que esos parámetros incluyen las cadenas "6D1948", "3F5108" y "8D3902", ya que las capturo en tres cuadros de texto de la página Web antes de hacer el "sumbit". Pero no encuentro aún la relación entre un "----------------------------7d6242382036e" y un 6D1948, aunque sospecho que no es tan difícil de averiguar.


2. El otro problema que tengo es que el sitio Web es HTTPS por lo que tengo que usar las DLLs libeay32.dll y ssleay32.dll, pero aún así, el componente TIdHTTP me arroja la excepción: EIdOSSLConnectError with message 'Error connecting with SSL. En este momento no puedo determinar que versión de SSL estoy usando, pero ¿cuál versión me sugieren utilizar con Delphi 7 y dónde podría conseguir ese par de DLLs?

De antemano les agradezco su ayuda.

Un abrazo espacial.

Al González.
Responder Con Cita
  #6  
Antiguo 27-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Hola Al,

Lo que planteas tiene una explicación muy sencilla. La codificación del formulario es diferente a la que estas acostumbrado. Hasta ahora habías tratado con formularios cuyo atributo enctype era "aplicación/x-www-form-urlencoded", por lo que los datos del formulario tenían un aspecto como este:
Código:
nombre1=valor1&nombre2=valor2
Ahora parece ser que el formulario usa "multipart/form-data". Este es otro tipo de codificación distinta, que se suele usar cuando además de texto, se necesita mandar otro tipo de información, como por ejemplo archivos. Una explicación un poco mas detallada la puedes encontrar aqui o puedes leer la normativa rfc2045

Con relación a tu pregunta, "----------------------------7d6242382036e" no es mas que un separador y no tiene relación con el valor de ninguno de los parámetros.

Creo que Indy puede trabajar con este tipo de codificación, pero ya sabes que yo soy mas de WinInet, así que es mejor que alguien con mas experiencia en Indy te lo confirme.
Responder Con Cita
  #7  
Antiguo 28-12-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Ah, OK, entonces...

¡Hola a todos!

Cita:
Empezado por seoane
...La codificación del formulario es diferente a la que estas acostumbrado. Hasta ahora habías tratado con formularios cuyo atributo enctype era "aplicación/x-www-form-urlencoded", por lo que los datos del formulario tenían un aspecto como este:
Código:
nombre1=valor1&nombre2=valor2
Ahora parece ser que el formulario usa "multipart/form-data". Este es otro tipo de codificación distinta, que se suele usar cuando además de texto, se necesita mandar otro tipo de información...
Gracias por la información Domingo. Ante esta eventualidad vi conveniente abrir otro hilo para tratar de forma más específica el problema:

TWebBrowser y TIdHTTP con “multipart/form-data”, ¿se puede?

De antemano gracias.

Un abrazo multiparte.

Al González.
Responder Con Cita
  #8  
Antiguo 10-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Al González
2. El otro problema que tengo es que el sitio Web es HTTPS por lo que tengo que usar las DLLs libeay32.dll y ssleay32.dll, pero aún así, el componente TIdHTTP me arroja la excepción: EIdOSSLConnectError with message 'Error connecting with SSL. En este momento no puedo determinar que versión de SSL estoy usando, pero ¿cuál versión me sugieren utilizar con Delphi 7 y dónde podría conseguir ese par de DLLs?
No sé si se resolvió esto. Yo acabo de tener que enfrentarme con ello y luego de múltiples intentos pude hacerlo así:
  • Usando las dlls de http://indy.fulgan.com/SSL/, la m para ser más exacto.
  • Conectando un IdSSLIOHandlerSocketOpenSSL a la propiedad IOHandler del IdHTTP
  • En la propiedad SSLOptions.Method de IdSSLIOHandlerSocketOpenSSL puse cualquier valor excepto el que trae por defecto

Todo esto con Indy 10 y mediante el método científico de probar una por una las opciones hasta dar con la adecuada

// Saludos

Última edición por roman fecha: 10-02-2007 a las 02:08:35.
Responder Con Cita
  #9  
Antiguo 28-12-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cita:
Empezado por seoane
Lo que si podríamos hacer en el caso del ClubDelphi, es loguearnos usando la función SendRequest, pero marcando la opción "Recuerdame", de esta forma la información de login se guardara en una cookie persistente que la nueva ventana del explorer si podrá utilizar.
Veamos, estoy conectado a un sitio que utiliza cookies para el acceso, por eso puedo abrir varias veces el IE y seguir usandolo como el mismo usuario.

Lo mismo lo estoy con mi programa, el problema es que ahora quiero abrir varias instancias de mi programa, pero que cada una este conectada con un usuario diferente. El sitio me obliga a usar cookies.

pd: Estoy usando WinInet
__________________
[Crandel]

Última edición por Crandel fecha: 28-12-2006 a las 01:01:39.
Responder Con Cita
  #10  
Antiguo 11-03-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cita:
Empezado por seoane
cuando nos logueamos con mi función recibimos un identificador de sesión, un identificador que solo es valido dentro de nuestra aplicación. Así que si abrimos el explorador, este estará dentro de una sesión nueva, a menos que seamos capaces de enviarle de alguna manera el valor de la cookie de sesión
Hola Seoane, podrias especificar dentro de tu función cual es el identificador de session del que hablas.

Estoy realizando la conexion a un servidor con multihilo, pero el resto de los hilos pierden la sesion, como hago para que todos mantengan la misma sesion?

edito: me parece que mi problema esta por otro lado, no esta perdiendo la sesion, porque un hilo si lo esta manteniendo.
__________________
[Crandel]

Última edición por Crandel fecha: 12-03-2007 a las 01:44:58.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Automatizacion de word (generar documentos) alt126 C++ Builder 4 24-04-2007 04:19:27
Automatizacion de word (insertar tablas) alt126 C++ Builder 2 04-11-2005 10:44:29
Consejo Automatizacion Excel Builder C++ alt126 C++ Builder 0 14-04-2005 10:52:04
HTTP Indy bochi Internet 1 27-12-2003 01:57:34
Http Server ebeltete Internet 0 17-05-2003 02:57:39


La franja horaria es GMT +2. Ahora son las 10:23:32.


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