Pregunta

He intentado varias formas de iniciar sesión en un sitio web a través de java. He utilizado watij, HTMLunit, etc. pero debido a que no estoy tan familiarizado con ninguno de estos, no puedo iniciar sesión correctamente.

¿Puede alguien decirme en detalle cómo iniciar sesión a través de java

Para ser más específico, quiero iniciar sesión en ORKUT y quiero el código de la página que viene después de iniciar sesión.

¿Fue útil?

Solución

Tus mejores oportunidades para hacer esas cosas & amp; Sobrevivir en la web del mundo real están con Selenium-RC.

Básicamente, lo que harás es controlar a distancia tu navegador para hacer cualquier cosa que puedas hacer manualmente (excepto la carga de archivos).

Muchas veces, he usado este patrón:

  1. Iniciar sesión con selenio
  2. tomar las cookies
  3. Continuar con mi biblioteca HTTP favorita.

Otros consejos

La respuesta depende de cómo el sitio web intente autenticarlo:

  • ¿Tiene que establecer un nombre de usuario y una contraseña en los encabezados HTTP (autenticación básica)?
  • ¿O tiene que completar y enviar un formulario con el nombre de usuario y la contraseña?

Para cualquiera de los dos recomendaría commons-httpclient, aunque el último método de raspado de pantalla siempre es complicado de hacer programáticamente.

Para la autenticación básica, eche un vistazo a Guía de autenticación de httpclient.

Para la autenticación de formularios, deberá verificar la fuente HTML de la página para comprender

  • La URL a la que se envía el formulario
  • Cuáles son los nombres de los parámetros a enviar

Para obtener ayuda sobre cómo enviar un formulario en httpclient, eche un vistazo a la documentación sobre el método POST .

El sitio httpclient también contiene un tutorial básico .

¿Por qué intentas iniciar sesión a través de Java? ¿Por qué no solo utilizas cURL? ¿Hay algo específico que estás tratando de lograr?

Orkut utiliza la autenticación de Google para iniciar sesión. Mi sugerencia es usar un depurador HTTP como Fiddler para ver el tráfico durante el inicio de sesión. Probablemente, hay cookies y redirecciones que necesita replicar.

En general,

  1. Mire el formulario de inicio de sesión, obtenga los nombres del campo de nombre y contraseña y la acción que publica el formulario en
  2. Cree una solicitud POST para la URL de acción y pase el nombre y la contraseña correctamente (por ejemplo, nombre = nombre de usuario y contraseña = pwd)
  3. Fue este HTTPS (asegúrate de hacerlo correctamente)
  4. Si la respuesta tiene un SET-COOKIE en el encabezado, asegúrese de enviar esa cookie en todas las solicitudes posteriores
  5. Si la respuesta tiene un redireccionamiento, realice un GET para el redireccionamiento, enviando cookies si corresponde.
  6. (mantente en bucle en el número 5 hasta que no obtengas una redirección)

La respuesta que obtienes al final de esto es la fuente de la página.

Echa un vistazo a esto:

http: // code .google.com / apis / gdata / javadoc / com / google / gdata / client / http / AuthSubUtil.html http: // code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

Parece un código de Google para autenticarse con sus servicios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top